--完全不需要 JOIN 或自訂 ROW_NUMBER!
--ROWS BETWEEN, 代替 ROW_NUMBER()
SELECT *,
AVG([C]) OVER (
PARTITION BY [履約價], [買賣權], [到期月份(週別)]
ORDER BY TRY_CAST([交易日期] AS DATE)
ROWS BETWEEN 4 PRECEDING AND CURRENT ROW
) AS MA_5
FROM dbo.TXO_OHLC
--完全不需要 JOIN 或自訂 ROW_NUMBER!
--ROWS BETWEEN, 代替 ROW_NUMBER()
SELECT *,
AVG([C]) OVER (
PARTITION BY [履約價], [買賣權], [到期月份(週別)]
ORDER BY TRY_CAST([交易日期] AS DATE)
ROWS BETWEEN 4 PRECEDING AND CURRENT ROW
) AS MA_5
FROM dbo.TXO_OHLC
SQL LIKE 語法(萬用字元):
1. % 任何字串。
範例: LIKE '%PC%' 找出包含PC的字串
2. _ (底線) 任一字元。
範例: LIKE '_ank', 限四個字元+結尾為ank的字串, ex:Tank
3. [ ] 指定範圍或任一字元。
範例:LIKE '[A-Z]' 單一英文字母,
範例:LIKE '[AKZ]' 只找AKZ這3字元,
範例:LIKE '%[_]%' 找出包含底線的字串, 範例:LIKE '%[%]%' 找出包含%的字串,
範例:LIKE '%[[]%' 找出包含左-中括弧的字串, 範例:LIKE '%[]]%' 找出包含右-中括弧的字串,
4. [^] 不在指定範圍或任一字元。
範例:LIKE '[^B-Y]' 單一英文字母, 不在B~Y之間,
範例:LIKE '[^AKZ]' 單一英文字母, 不包含AKZ這3字元
無法壓縮資料庫mdf:
無法壓縮資料庫識別碼 13 的檔案識別碼 1,因為它正由另一個處理序壓縮中或是空的.
sol: 改變資料庫大小,
USE [master]
GO
ALTER DATABASE [DB1] MODIFY FILE ( NAME = N'DBF1', SIZE = 1024KB )
GO
SELECT VendorID, [250] AS Emp1, [251] AS Emp2, [256] AS Emp3, [257] AS Emp4, [260] AS Emp5
FROM (SELECT PurchaseOrderID, EmployeeID, VendorID FROM Purchasing.PurchaseOrderHeader) p PIVOT ( COUNT (PurchaseOrderID) FOR EmployeeID IN ( [250], [251], [256], [257], [260] ) ) AS pvt ORDER BY pvt.VendorID;一次新增多筆資料 (INSERT INTO)
語法:
INSERT INTO table_name
VALUES (value1_1, value2_2, value3_3,···),
(value2_1, value2_2, value2_3,···),
(value3_1, value3_2, value3_3,···);
SQL 新的分頁語法 OFFSET 和 FETCH,效能比先前的 ROW_NUMBER() 函數速度快上許多。
ex:
SELECT *
FROM
(
SELECT ID, ROW_NUMBER() OVER (ORDER BY ID) AS RowID
FROM Table_2
) A
WHERE RowID BETWEEN 3*10 AND (3+1)*10-1
;
SELECT *
FROM
(
SELECT ID, ROW_NUMBER() OVER (ORDER BY ID) AS RowID
FROM Table_2
) A
ORDER BY RowID
OFFSET 3*10-1 Rows
FETCH NEXT 10 Rows ONLY
;