gpt4 book ai didi

sql-server - 如何使用 IN 运算符整理 SQL_Latin1_General_CP1_CI_AS

转载 作者:行者123 更新时间:2023-12-02 10:00:27 26 4
gpt4 key购买 nike

我想过滤“电子邮件”上的记录,我的查询如下。

SELECT * FROM #temp WHERE email NOT IN (SELECT email FROM Customer)

它给了我以下错误

Cannot resolve the collation conflict between "SQL_Latin1_General_CP1_CI_AS" and "Latin1_General_CI_AS" in the equal to operation.

如果有等号运算符 (=) 而不是 IN,我可以使用 collat​​e。但在这里使用 Collat​​e 会出现语法错误。

SELECT * FROM #temp WHERE email NOT IN (SELECT email FROM Customer) collate SQL_Latin1_General_CP1_CI_AS

我该如何解决这个问题。我无法删除并重新创建表,因为它是实时数据库。

#temp 表中的数据来自 SQL Server 2000,Customer 表来自 SQL Server 2005

谢谢。

最佳答案

...
NOT IN (SELECT email COLLATE SQL_Latin1_General_CP1_CI_AS AS email FROM Customer)

基本上,整理位位于列名称之后。

或者这个(这取决于你想要哪一个):

SELECT * FROM #temp WHERE email collate SQL_Latin1_General_CP1_CI_AS NOT IN (SELECT email FROM Customer) 

最后,如果您的数据库是 SQL_Latin1_General_CP1_CI_AS,则一种选择是使用 ...COLLATE Database_Default... 强制使用默认设置。

关于sql-server - 如何使用 IN 运算符整理 SQL_Latin1_General_CP1_CI_AS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2004363/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com