2024年9月25日 星期三

SQL LIKE 語法(萬用字元)

 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字元

2024年6月26日 星期三

無法壓縮資料庫mdf

 無法壓縮資料庫mdf:

 無法壓縮資料庫識別碼 13 的檔案識別碼 1,因為它正由另一個處理序壓縮中或是空的.


sol: 改變資料庫大小,

USE [master]

GO

ALTER DATABASE [DB1] MODIFY FILE ( NAME = N'DBF1', SIZE = 1024KB )

GO


2024年5月21日 星期二

PIVOT TABLE

 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;

2024年4月18日 星期四

一次新增多筆資料 (INSERT INTO)

 一次新增多筆資料 (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,···);


2024年1月18日 星期四

新分頁語法 OFFSET + FETCH

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

;

2024年1月2日 星期二

SQL MD5 雜湊已被淘汰

--SQL MD5 雜湊已被淘汰

--雜湊改用安全得 SHA2_256 

DECLARE @HashThis nvarchar(max);

SELECT @HashThis = CONVERT(nvarchar,'dslfdkjLK85kldhnv$n000#knf');

SELECT HashBytes('SHA2_256', @HashThis);

OLTP 資料庫啟用ROW壓縮

 OLTP SQL資料庫, 可以啟用ROW壓縮, 同時縮小硬碟儲存空間+讀取資料量大小+降低存取秒數;
不過, 該資料表或資料庫有大量資料新增或匯入(一秒萬筆上下), 則不適用ROW壓縮

新增欄位, 在 DEFAULT 值後面加上WITH VALUES

資料表新增欄位, 在 DEFAULT 值後面加上WITH VALUES, 則不需要浪費時間+手動更新歷史資料預設值.
ex:

ALTER TABLE dbo.Table1

ADD AddDate smalldatetime NULL

    DEFAULT GETDATE() WITH VALUES ;

SQL Server 2017 統計不支援 MAXDOP

SQL Server 2017 建立統計與更新統計語句不支援 MAXDOP 選項.
需更新到CU3才支援, 更新後SQL版本號為 14.0.3015.40.