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

SQL Server 查詢區分大小寫與全半形字元技巧(SQL 2000 / 7.0)

     編輯:關於SqlServer

預設不區分大小寫。若需區分,可用 COLLATE 指定區分大小寫、腔調、全半形的定序。

SQL Server 2000:使用 Chinese_PRC_CS_AS_WS

-- 建立測試資料
CREATE TABLE 測試(fd VARCHAR(10));
INSERT INTO 測試 SELECT 'aa' UNION ALL SELECT 'Aa' UNION ALL SELECT 'AA' UNION ALL SELECT 'A,A' UNION ALL SELECT 'A,A';

-- 1. 查大寫字母
SELECT * FROM 測試 WHERE fd COLLATE Chinese_PRC_CS_AS_WS LIKE '%A%';
-- 結果:Aa

-- 2. 查全形字元
SELECT * FROM 測試 WHERE fd COLLATE Chinese_PRC_CS_AS_WS LIKE '%A%';
-- 結果:AA、A,A、A,A

-- 3. 查半形逗號
SELECT * FROM 測試 WHERE fd COLLATE Chinese_PRC_CS_AS_WS LIKE '%,%';
-- 結果:A,A

SQL Server 7.0:轉換為 VARBINARY 比較

-- 全部比較
SELECT * FROM (SELECT 'a' AS fd UNION ALL SELECT 'A') a
WHERE CAST(fd AS VARBINARY(8000)) = CAST('A' AS VARBINARY(8000));

-- 部分匹配用 CHARINDEX
SELECT * FROM (SELECT 'a' AS fd UNION ALL SELECT 'A' UNION ALL SELECT 'aAaa' UNION ALL SELECT 'aaaa' UNION ALL SELECT 'cccA') a
WHERE CHARINDEX(CAST('A' AS VARBINARY(8000)), CAST(fd AS VARBINARY(8000))) > 0;
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved