5

Sql-Server 2008 R2排序规则是Chinese_Simplified_Pinyin_100_CI_AS. 当我使用

select 1 where N'⑦' = N'7'

它输出 1,但是当我将运算符更改为like

select 1 where N'⑦' like N'7'

它不会输出任何东西。

为什么like运营商行为如此怪异?我错过了什么?

4

1 回答 1

1

这似乎是一个错误。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

我看到您在 Microsoft Connect 上报告了它

于 2012-07-20T18:09:53.507 回答