掌握 T-SQL 的註解符號、運算子類型、通配符用法與運算優先順序,是撰寫高品質 SQL 程式碼的基礎。本文系統整理這些核心元素,並提供實際應用範例。
T-SQL 支援兩種註解方式:
| 運算子 | 說明 |
|---|---|
| + | 加法 |
| - | 減法 |
| * | 乘法 |
| / | 除法 |
| % | 取餘數 |
| 運算子 | 說明 | ANSI 標準 |
|---|---|---|
| > | 大於 | 是 |
| < | 小於 | 是 |
| = | 等於 | 是 |
| >= | 大於等於 | 是 |
| <= | 小於等於 | 是 |
| <> | 不等於 | 是 |
| != | 不等於 | 否 |
| !> | 不大於 | 否 |
| !< | 不小於 | 否 |
注意: !=、!>、!< 非 ANSI 標準,建議使用 <>、<=、>= 以確保可攜性。
| 運算子 | 說明 |
|---|---|
| AND | 邏輯與 |
| OR | 邏輯或 |
| NOT | 邏輯非 |
| 運算子 | 說明 |
|---|---|
| & | 位元 AND |
| | | 位元 OR |
| ~ | 位元 NOT |
| ^ | 位元 XOR |
+ 用於串接兩個或多個字串、二進位串、欄位名或混合型別。語法:<運算式1> + <運算式2>
USE pangu
DECLARE @startdate DATETIME
SET @startdate = '1/1/2000'
SELECT 'Start Date:' + CONVERT(VARCHAR(12), @startdate)
執行結果: Start Date:Jan 1 2000
USE pangu
SELECT '月薪最高的員工是:' + e_name + '月薪為:' + CONVERT(VARCHAR(10), e_wage)
FROM employee
WHERE e_wage = (SELECT MAX(e_wage) FROM employee)
執行結果: 月薪最高的員工是:張三月薪為8000.00
()~*、/、%+、-^&|同層級運算子從左至右依序處理。
SQL Server 支援標準通配符,常用於 LIKE 運算式:
| 通配符 | 說明 | 範例 |
|---|---|---|
| % | 任意長度字串(含零字元) | '張%' 符合「張」開頭 |
| _ | 單一字元 | '張_' 符合「張」+1字元 |
| [ ] | 字元範圍 | '[張李]%' 符合張或李開頭 |
| [^] | 排除字元範圍 | '[^張]%' 符合非張開頭 |

SET CONCAT_NULL_YIELDS_NULL ON 時,任一運算元為 NULL 結果即為 NULL