【发布时间】:2021-09-04 12:08:02
【问题描述】:
我在查询中使用来自同一服务器的另一个数据库的数据
我收到给定的错误
无法解决等于操作中“SQL_Latin1_General_CP1_CI_AS”和“SQL_Latin1_General_CP850_BIN2”之间的排序规则冲突。本机错误:468。SQLSTATE:42000。严重性 16。MsgState 9。第 39 行。
我该如何解决?
with
main AS (
SELECT a.LBrCode,a.PrdAcctId,b.SexCode,a.DateOpen,
case when (a.AcctStat=3 and a.DateClosed>'30-jun-2021') or a.AcctStat<>3 then 'live' else 'cl' end r1
FROM ac_mast a INNER JOIN prd_mat b ON a.CustNo=b.CustNo
WHERE rtrim(substring(a.PrdAcctId,1,8)) IN ('abc') AND a.AcctType=32
)
,
card_data AS (
SELECT substring(b.primary_a_c_number,1,3) LBrCode,
substring(b.primary_a_c_number,4,4)+replicate(' ',4)+replicate('0',8)+substring(b.primary_a_c_number,8,8)+replicate('0',8) PrdAcctId,
card_number,card_process_date,first_tran_date
FROM [hk_RDS2.0].dbo.cardx1 b
select a.LBrCode,a.PrdacctId,b.Card_number from main a inner join card_data b
on a.LBrCode=b.LBrCode and a.PrdAcctId=b.PrdAcctId
请帮忙
【问题讨论】:
-
这能回答你的问题吗? Issues with missing collate in SQL Server
-
我尝试 SELECT a.LBrCode,a.PrdAcctId,b.card_number FROM main a INNER JOIN card_data b ON a.LBrCode COLLATE DATABASE_DEFAULT = b.LBrCode COLLATE DATABASE_DEFAULT AND a.PrdAcctId COLLATE DATABASE_DEFAULT =b .PrdAcctId COLLATE DATABASE_DEFAULT 但由于表达式类型 int 对 COLLATE 子句无效而出现错误。本机错误:447。SQLSTATE:42000。严重性 16。MsgState 1。第 39 行。
-
Edit 你的问题,@hemu_k,不要把这些信息放在 cmets 中。
-
然而,错误告诉你问题所在。您显然在这里有 2 个不同的排序规则,如果没有明确地将一个排序规则与另一个排序规则进行比较,则无法比较这些值。
-
帮我拉努...如何比较?
标签: sql sql-server tsql sql-server-collation