5
Sql-Server 2008 R2
排序規則爲。 當我使用兩個字符串使用'='進行比較相等,但'失敗'比較
select 1 where N'⑦' = N'7'
它輸出1,但是當我改變運營商like
select 1 where N'⑦' like N'7'
它不會輸出任何東西。
爲什麼like
運算符表現得很奇怪?我錯過了什麼?
Sql-Server 2008 R2
排序規則爲。 當我使用兩個字符串使用'='進行比較相等,但'失敗'比較
select 1 where N'⑦' = N'7'
它輸出1,但是當我改變運營商like
select 1 where N'⑦' like N'7'
它不會輸出任何東西。
爲什麼like
運算符表現得很奇怪?我錯過了什麼?
這似乎是一個錯誤。 LIKE
針對沒有通配符的模式應始終返回=
返回的相同內容。
其他可以通過運行下面的查詢看到此行爲:
SELECT
CASE WHEN N'⑦' COLLATE Chinese_Simplified_Pinyin_100_CI_AS = N'7' THEN 'Y' ELSE 'N' END,
CASE WHEN N'⑦' COLLATE Chinese_Simplified_Pinyin_100_CI_AS LIKE N'7' THEN 'Y' ELSE 'N' END
-- Y N
'N'⑦'與N'7%''和'N'7''N'ır%''都返回結果。在Connect上報告。對我來說,這似乎不像預期的行爲。 – 2012-07-11 06:29:51
以下鏈接可能會對您有所幫助。看起來像一個已知的問題https://connect.microsoft.com/SQLServer/feedback/details/703959/search-with-like-not-working-as-expected-with-collation-slovenian-100-ci-as – PraveenVenu 2012-07-11 06:09:39
Don看不出連接問題是如何相關的(除了是LIKE的另一個問題) – 2012-07-11 06:16:19