我对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之间的排序规则冲突
答案 0 :(得分:0)
通常一个整理值而不是整个查询。 自从我使用mssql以来已经不确定了一段时间,但是我认为这应该对您有用。 我整理两端,如果您在某个时间更改任何表的排序规则,可能是一个好主意,除非您有充分的理由,否则不要认为您真的不希望在同一模式中拥有两个不同的排序规则。 / p>
SELECT * from T1 where T1.2 COLLATE DATABASE_DEFAULT not in
(select T2.2 COLLATE DATABASE_DEFAULT from T2)
答案 1 :(得分:0)
在编写T2.2
2
时,此处应为列名,语法为tableName.coloumnName
,不确定这是否是您的意思。