Kas*_*hif 10 t-sql sql-server sql-server-2005
我想过滤'电子邮件'上的记录我的查询是这样的.
SELECT * FROM #temp WHERE email NOT IN (SELECT email FROM Customer)
Run Code Online (Sandbox Code Playgroud)
它给了我以下错误
在等于操作中无法解决"SQL_Latin1_General_CP1_CI_AS"和"Latin1_General_CI_AS"之间的排序规则冲突.
如果有相等的运算符(=)而不是IN,我可以使用整理.但是在这里使用Collate会给我语法错误.
SELECT*FROM #temp WHERE email NOT IN(SELECT FROM FROM FROM Customer)整理SQL_Latin1_General_CP1_CI_AS
我该如何解决这个问题.我不能删除并重新创建表,因为它是实时数据库.
#temp表中的数据来自SQL Server 2000,而Customer表位于SQL Server 2005中
谢谢.
gbn*_*gbn 19
...
NOT IN (SELECT email COLLATE SQL_Latin1_General_CP1_CI_AS AS email FROM Customer)
Run Code Online (Sandbox Code Playgroud)
基本上,collate位遵循列名.
或者这(这取决于你想要的那个):
SELECT * FROM #temp WHERE email collate SQL_Latin1_General_CP1_CI_AS NOT IN (SELECT email FROM Customer)
Run Code Online (Sandbox Code Playgroud)
最后,如果您的数据库是SQL_Latin1_General_CP1_CI_AS,则可以使用一个选项...COLLATE Database_Default...来强制设置为默认设置.
| 归档时间: |
|
| 查看次数: |
59308 次 |
| 最近记录: |