首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL 變量聲明與運算符優先級完整指南:算術、位、比較、字符串、邏輯運算符層級表

     編輯:關於SqlServer

變量聲明與賦值

-- 聲明格式
DECLARE @Var1 DataType, @Var2 DataType, ...;

-- 賦值:SELECT 或 SET(推薦 SET 單變量,SELECT 多變量)
DECLARE @Var1 INT, @Var2 MONEY;
SELECT @Var1 = 100, @Var2 = 27.95;
-- 或
SET @Var1 = 100;
SET @Var2 = 27.95;

-- 讀取
SELECT @Var1, @Var2;

運算符分類與優先級表(高到低)

優先級類別運算符結合性說明
1 (最高)括號()左到右強制分組,改變默認順序
2一元取反~右到左位取反 (BITWISE NOT)
3算術*, /, %左到右乘、除、取模
4位異或^左到右BITWISE XOR
5位或|左到右BITWISE OR
6位與&左到右BITWISE AND
7比較=, >, <, >=, <=, <>左到右返回布爾值
8邏輯非NOT右到左邏輯取反
9邏輯與AND左到右邏輯合取
10 (最低)邏輯或OR左到右邏輯析取

關鍵運算符詳細說明

算術運算符

  • + - * / %:標準四則運算與取模。% 僅適用整數類型,MONEY/SMALLMONEY 不支持取模。

位運算符

  • & | ^ ~:按位與、或、異或、取反。僅適用整數類型 (INT, BIGINT, SMALLINT, TINYINT, BIT),常用於位掩碼標誌位操作。

比較運算符

  • = > < >= <= <>:標準比較,返回 TRUE/FALSE/UNKNOWN (NULL 參與時)。

字符串運算符

  • +:字符串連接。'abc' + '123' = 'abc123'。注意:任一操作數為 NULL,結果為 NULL(除非 CONCAT_NULL_YIELDS_NULL OFF)。

邏輯運算符優先級陷阱

-- 等價於 WHERE (A = 1 AND B = 2) OR C = 3
WHERE A = 1 AND B = 2 OR C = 3

-- 明確分組避免歧義
WHERE (A = 1 AND B = 2) OR C = 3
WHERE A = 1 AND (B = 2 OR C = 3)

實戰建議

  • 複雜表達式**務必加括號**,代碼可讀性 > 依賴優先級記憶。
  • 位運算優先級低於算術,a + b & c 等價 (a + b) & c,非 a + (b & c)。
  • 字符串連接 + 與算術 + 同符號,類型上下文決定語義,混合使用加括號區分。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved