sql - SELECT where not in other table with COLLATE
问题描述
我对 SQL Server 语句有疑问。
我有 2 张桌子
T1
1
2
T2
1
2
我想从 T1 中选择 T1.2 不在 T2.2 中。我试过这个语句,但它不起作用,我收到一个错误
关键字 Collate 附近的语法不正确
SELECT *
FROM T1
WHERE T1.2 NOT IN (SELECT T2.2 FROM T2) COLLATE sql_latin1_general_cp1_ci_as
PS:我使用collate
了,因为没有它我得到了另一个错误
无法解决arabic_ci_as和sql_latin1_general_cp1_ci_as之间的排序规则冲突
解决方案
通常一个整理值不是整个查询。不确定,因为我使用 mssql 已经有一段时间了,但我认为这应该适合你。我整理了两端,如果您在某个时候更改任何表的排序规则,这可能是一个好主意,除非有充分的理由,否则不要认为您真的希望在同一架构中有两个不同的排序规则。
SELECT * from T1 where T1.2 COLLATE DATABASE_DEFAULT not in
(select T2.2 COLLATE DATABASE_DEFAULT from T2)
推荐阅读
- python - 如何修复此 AttributeError:“SubRequest”对象没有属性“getfuncargvalue”?
- c - Looping print only last line of my file (after 2 loops)
- sql - 子查询返回超过 1 个值。当子查询跟随 =、!=、<、<=、>、>= 或
- sql - 使用 Min 和 Sum 以及 Group By 进行 SQL 更新
- java - 如何使用for循环以相反的顺序在数组中插入元素
- javascript - 如何将此 JQuery 转换为 vanilla Javascript?
- ios - 在 Mac Catalyst 中打开一个新窗口
- python - PySwip 启动时出错:无法解压不可迭代的 NoneType 对象
- java - 错误:无法在 Windows 10 上访问 jarfile metabase.jar
- swift - 使用 atlas 纹理并调用其 cgImage() 函数时,图像视图会显示损坏的图像