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

SQL SELECT 陳述式標準語法完整參考

     編輯:關於SqlServer

SELECT 陳述式標準語法

SELECT [ALL | DISTINCT] select_list
FROM table_source
[WHERE search_condition]
[GROUP BY group_by_expression]
[HAVING search_condition]
[ORDER BY order_expression [ASC | DESC]]

子句詳細說明

子句用途關鍵點
SELECT指定回傳欄位* 所有欄;DISTINCT 去重;可使用別名 AS
FROM指定資料來源資料表、檢視表、衍生表、表值函數、JOIN
WHERE列篩選 (行過濾)執行於 GROUP BY 之前;不可使用彙總函數
GROUP BY分組彙總SELECT 清單中非彙總欄位必須出現在 GROUP BY
HAVING分組後篩選可使用彙總函數;執行於 GROUP BY 之後
ORDER BY結果排序支援多欄位、ASC/DESC、運算式、資料行序數

執行邏輯順序 (非寫入順序)

  1. FROM / JOIN (確定資料來源)
  2. WHERE (列篩選)
  3. GROUP BY (分組)
  4. HAVING (分組篩選)
  5. SELECT (投影/計算)
  6. DISTINCT (去重)
  7. ORDER BY (排序)
  8. TOP / OFFSET-FETCH (限制筆數)

常見運算子與範例

比較運算子

=  <>  >  <  >=  <=  !>  !<

範圍運算子

BETWEEN ... AND ...      -- 等同 >= 且 <=
NOT BETWEEN ... AND ...

清單運算子

IN (值1, 值2, ...)
NOT IN (值1, 值2, ...)

模式比對 (LIKE)

%   -- 任意長度字串 (含零字元)
_   -- 單一任意字元
[]  -- 指定字元集合/範圍 [a-f]
[^] -- 排除字元集合

範例:WHERE name LIKE 'A%' (A 開頭);WHERE code LIKE '%[0-9]' (數字結尾);WHERE name LIKE '[^A]%' (非 A 開頭)

空值判斷

IS NULL
IS NOT NULL

邏輯運算子

AND  OR  NOT

實用範例

-- 多表聯查 + 分組彙總 + 條件篩選 + 排序
SELECT c.CustomerID, c.CompanyName, COUNT(o.OrderID) AS OrderCount
FROM Customers c
LEFT JOIN Orders o ON c.CustomerID = o.CustomerID
WHERE c.Country = 'Taiwan'
GROUP BY c.CustomerID, c.CompanyName
HAVING COUNT(o.OrderID) > 5
ORDER BY OrderCount DESC, c.CompanyName
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved