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

SQL 進階 SELECT 查詢技巧:通配符、發音匹配與集合函數

     編輯:關於SqlServer

五大集合函數速查

函數用途
SUM加總數值
AVG計算平均
COUNT統計行數
MAX取得最大值
MIN取得最小值

通配符進階用法(LIKE 配合 [] 、%、_、^)

-- 首字母在 A-M 之間
SELECT * FROM tablename WHERE column1 LIKE '[A-M]%'

-- 首字母為 A、B 或 C
SELECT * FROM tablename WHERE column1 LIKE '[ABC]%'

-- 首字母在 A-C 之間、或為 G
SELECT * FROM tablename WHERE column1 LIKE '[A-CG]%'

-- 首字母非 C
SELECT * FROM tablename WHERE column1 LIKE '[^C]%'

-- 單一字元萬用字元 _
SELECT * FROM tablename WHERE column1 LIKE 'M_crosoft'  -- 符合 Microsoft、Macrosoft 等

-- 匹配特殊字元 %、_、[、]、- :置入 []
SELECT * FROM tablename WHERE column1 LIKE '%[%]%'  -- 包含 % 字元的字串

發音相似度匹配(SOUNDEX / DIFFERENCE)

適用於不確定確切拼寫、但知大概發音的查詢:

-- DIFFERENCE 回傳 0-4,4 代表極相似
SELECT * FROM tablename WHERE DIFFERENCE(column1, 'Laofei') > 3

-- SOUNDEX 回傳音標碼,可輔助理解比對邏輯
SELECT column1, SOUNDEX(column1) AS sound_code FROM tablename

⚠ 效能與限制提醒

  • DIFFERENCE 僅比較首字母與所有子音(忽略母音,除非首字為母音)
  • 在 WHERE 子句中使用這兩個函數無法使用索引,大量資料查詢效能極差
  • 建議:僅用於小資料集、或離線分析;線上系統應改用全文檢索或應用層模糊比對

實務建議

  • 善用 [] 字元類別簡化複雜 LIKE 模式
  • 特殊字元查詢務必用 [] 轉義
  • 發音匹配僅作輔助,勿用於核心業務邏輯
  • 集合函數配合 GROUP BY 進行多維度統計
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved