Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL排序规则冲突_Sql_Sql Server_Tsql - Fatal编程技术网

SQL排序规则冲突

SQL排序规则冲突,sql,sql-server,tsql,Sql,Sql Server,Tsql,我在执行如下sql查询时遇到排序规则问题: INSERT INTO (table1) (...) SELECT (...) FROM (table 2) WHERE X NOT IN (SELECT Y from (table1) 我看到了一个解决方案,但当我尝试这样的方法时: INSERT INTO (table1) (...) SELECT (...) FROM (table 2) WHERE X NOT IN (SELECT Y from (table1) CO

我在执行如下sql查询时遇到排序规则问题:

INSERT INTO (table1) (...)
SELECT (...)
FROM (table 2)
WHERE X NOT IN (SELECT Y from (table1)

我看到了一个解决方案,但当我尝试这样的方法时:

INSERT INTO (table1) (...)
    SELECT (...)
    FROM (table 2)
    WHERE X NOT IN (SELECT Y from (table1) COLLATE database_default
我得到一个语法错误:

 "Incorrect syntax near the keyword 'COLLATE'."

有人知道我做错了什么吗?

你应该移动
整理

INSERT INTO (table1) (...)
SELECT (...)
FROM (table 2)
WHERE X NOT IN (SELECT Y COLLATE database_default from table1);
请注意,如果列
Y
可为空,则
不在
中可能很棘手。最好通过添加以下内容来保护代码:

WHERE X NOT IN(SELECT Y COLLATE database_default from table1 WHERE Y IS NOT NULL);
WHERE X NOT IN(SELECT Y COLLATE database_default from table1 WHERE Y IS NOT NULL);