Sql 如何在多个数据库中使用EXCEPT子句
我有一个带except子句的查询。在Exception下面,我的第二个查询来自与第一个查询使用的数据库不同的数据库 看起来像这样Sql 如何在多个数据库中使用EXCEPT子句,sql,sql-server,Sql,Sql Server,我有一个带except子句的查询。在Exception下面,我的第二个查询来自与第一个查询使用的数据库不同的数据库 看起来像这样 SELECT field1 as a FROM table 1 EXCEPT USE differentdb SELECT field2 as a FROM table 2 我也试过这个 SELECT field1 as a FROM table 1 EXCEPT USE differentdb SELECT field2 as a FROM differentdb
SELECT field1 as a
FROM table 1
EXCEPT
USE differentdb
SELECT field2 as a
FROM table 2
我也试过这个
SELECT field1 as a
FROM table 1
EXCEPT
USE differentdb
SELECT field2 as a
FROM differentdb.dbo.table2
我意识到这在SQL中是不允许的,因为我得到了以下错误:
Msg 468,级别16,状态9,第1行无法解析排序规则
“SQL拉丁语通用”和“CP1”之间的冲突
“Latin1_General_CI_AS”在等于运算中
我想知道是否有其他方法可以编写此查询并完成交叉db EXCEPT子句。动态更改列的排序规则,如:
SELECT field1 COLLATE SQL_Latin1_General_CP1_CI_AS as a
FROM table 1
EXCEPT
SELECT differentdb.SchemaName.field2 as a
FROM table 2
Us可以使用子句从其他数据库转换排序规则
SELECT field2 collate SQL_Latin1_General_CP1_CI_AS as a
FROM table 2
在这里,您应该使用正确的排序规则-因为第一个和第二个数据库的排序规则信息不足
或者你可以简单地使用
SELECT field2 collate database_default as a
FROM table 2
这将导致collate
子句继承当前数据库的排序规则