我的數據庫中有一些內容(用於我們的語言)'奇怪'字符。字符串與SqlServer中的'奇怪字符'比較
例如:
Å
當使用SQL Server中的like
聲明字母A
,這不返回的結果,因爲Å
不是A
。
SqlServer有沒有辦法將Å
作爲E
(而é
作爲'e
'等)?
我的數據庫中有一些內容(用於我們的語言)'奇怪'字符。字符串與SqlServer中的'奇怪字符'比較
例如:
Å
當使用SQL Server中的like
聲明字母A
,這不返回的結果,因爲Å
不是A
。
SqlServer有沒有辦法將Å
作爲E
(而é
作爲'e
'等)?
你的意思是「Åas A」或「Åas E」?
對於第一個,你可以強制排序規則不區分重音
SELECT 1 WHERE 'Å' = 'A' --No
SELECT 1 WHERE 'Å' COLLATE LATIN1_General_CI_AI = 'A' --Yes
SELECT 1 WHERE 'é' = 'e' --No
SELECT 1 WHERE 'é' COLLATE LATIN1_General_CI_AI = 'e' --Yes
您可以在您的查詢COLLATE
子句指定口音大小寫排序:
SELECT *
FROM your_table
WHERE your_column LIKE 'A%' COLLATE Latin1_General_CI_AI
你需要爲您的語言使用適當的排序規則。內置fn_helpcollations
函數將給你一個所有支持的排序規則列表:
SELECT *
FROM fn_helpcollations()
謝謝,這是有效的。 你有任何想法,如果這也可能在Linq實體? – Michel 2009-08-12 11:41:02
不客氣。對不起,我沒有。 – gbn 2009-08-12 11:55:17
也沒有發現,用你的代碼創建了一個SP。很棒。 – Michel 2009-08-27 09:21:13