2009-07-15 61 views
2

我有一個公司名稱列表,用戶必須輸入他的公司名稱才能進入系統。假設我們有公司「PréABC」,現在我希望用戶能夠輸入「Pre」或「Pré」。T-SQL匹配特殊字符。 Pre應該匹配Pré

首先,我認爲這是LIKE語句的內置功能,但不幸的是它不是。有什麼想法嗎?

+0

這真的很有趣,我幾天前纔讀到這個,並且遇到了這個問題。 適合我在這個問題上的審查;) – Sung 2009-07-15 15:53:11

回答

5

這與排序規則有關。每個數據庫都有自己的排序規則(任何列也可以覆蓋該排序規則)。就你而言,你正在尋找一個不區分重音的歸類,而不區分大小寫。嘗試將數據庫配置爲「SQL_Latin1_General_CP1_CI_AI」。這解碼爲「代碼頁1,不區分大小寫,不區分變音」,這應使您的查詢按需工作。

+0

當我查找整理順序的完整語法時,打我。這也是數據庫全球化的優勢,所以整個系統就是這樣工作的。 – Godeke 2009-07-15 15:32:38

+0

這似乎工作。然而,我並沒有在完​​整的數據庫上做,而是在具體的數據庫上進行: table.X COLLATE SQL_Latin1_General_CP1_CI_AI = @Name COLLATE SQL_Latin1_General_CP1_CI_AI – Zyphrax 2009-07-15 15:53:08

3
SELECT 1 
WHERE N'Pré ABC' COLLATE LATIN1_GENERAL_CI_AI LIKE N'%Pre%'