这个是 online book 上的,你可以自己参照下面的实验看看
USE tempdb
GO
CREATE TABLE TestTab (
id int,
GreekCol nvarchar(10) collate greek_ci_as,
LatinCol nvarchar(10) collate latin1_general_cs_as
)
INSERT TestTab VALUES (1, N'A', N'a')
GO
下面查询中的谓词具有排序规则冲突,因此产生错误:
SELECT *
FROM TestTab
WHERE GreekCol = LatinCol
下面是结果集。
Msg 446, Level 16, State 9, Server CTSSERV, Line 1
Cannot resolve collation conflict for equal to operation.
下面查询中的谓词在排序规则 greek_ci_as 中取值,因为右边表达式具有显式标志,优先于右边表达式的隐性标志:
SELECT *
FROM TestTab
WHERE GreekCol = LatinCol COLLATE greek_ci_as
下面是结果集。
id
GreekCol
LatinCol
----------- -------------------- --------------------
1 a
A
(1 row affected)
下面查询中的 case 表达式没有排
|