傳回結果集資料分割內某資料列的序號,序號從 1 開始,每個資料分割第一個資料列的序號是 1。
select top 10 row_number() over (order by CONTACTID) AS Cnt , [ContactID] , [Title] , [FirstName] , [LastName] from [AdventureWorks].[Person].[Contact][SQL]為查詢的結果加上序號(ROW_NUMBER,RANK,OVER)
ROW_NUMBER (Transact-SQL)
RANK (Transact-SQL)
REPLICATE (Transact-SQL)
[SQL]幫某個欄位填入補0並且加字頭的順號語法
LPAD and RPAD functions in SQL
CHARINDEX 與 PATINDEX 的比較
CHARINDEX 與 PATINDEX 函數會傳回您指定的模式的起始位置。PATINDEX 可以使用萬用字元,但 CHARINDEX 不能。
資料類型轉換
如果您希望 Transact-SQL 程式碼符合 ISO,請使用 CAST 來取代 CONVERT。而使用 CONVERT 來代替 CAST,則可利用 CONVERT 的樣式功能。
ORACLE可以在WHERE條件的IN,使用多個欄位,但SQL SERVER不支援此語法 = =|||
--SQL SERVER 無法執行 select * from Table1 a where (a.f1, a.f2) in (select b.f1, b.f2 from Table2 b); --老外的解法 SELECT * FROM table1 a WHERE EXISTS ( SELECT * FROM table2 b WHERE a.f1 = b.f1 AND a.f2 = b.f2 ); --加上Group By ;WITH CTE AS ( SELECT g.CustomerId, g.Barcode FROM Products g GROUP BY g.CustomerId, g.Barcode HAVING COUNT(1) > 1 ) SELECT * FROM Products p WHERE EXISTS ( SELECT * FROM CTE c WHERE c.CustomerId = p.CustomerId AND c.Barcode = p.Barcode ) ORDER BY p.Barcode1參考:
Efficient EXISTS
SQL WHERE.. IN clause multiple columns
“Where IN” with multiple columns (SQL Server)
OUTPUT 子句 (Transact-SQL)
沒有留言:
張貼留言