“之间的排序冲突”;SQL拉丁语通用CP1 CI AS;及;SQL拉丁语“通用”CP1“CS”AS;在等于运算中
这是我的密码“之间的排序冲突”;SQL拉丁语通用CP1 CI AS;及;SQL拉丁语“通用”CP1“CS”AS;在等于运算中,sql,inner-join,collation,Sql,Inner Join,Collation,这是我的密码 SELECT CASE j.ANALYSIS WHEN 'INSTALL' THEN 'ProtectedProperty' WHEN 'REMOVAL' THEN 'UnProtectedProperty' END AS label ,
SELECT
CASE j.ANALYSIS
WHEN 'INSTALL' THEN 'ProtectedProperty'
WHEN 'REMOVAL' THEN 'UnProtectedProperty'
END AS label ,
Count(P.PROPERTYREF) AS value
FROM
properties AS p WITH (NOLOCK)
INNER JOIN
jobs AS j WITH (NOLOCK)
ON
j.PROPERTYREF = p.PROPERTYREF
INNER JOIN
LIVE_PROPS AS lp WITH (NOLOCK)
ON
j.PROPERTYREF =lp.PROPERTYREF
WHERE
j.Completed BETWEEN @dtmStartTime AND @dtmEndTime
AND
p.OFFICE In (Select OfficeId FROM tempTbl)
有一个错误,比如
无法解决“等于”操作中“Latin1_General_CI_AS”和“SQL_Latin1_General_CP1_CI_AS”之间的排序规则冲突。两列之间的排序规则不同。在违规等于操作后添加
将拉丁语1_General_CI_作为
例如,如果问题是LIVE_PROPS表:
INNER JOIN LIVE_PROPS AS lp WITH (NOLOCK)
ON j.POPERTYREF = lp.PROPERTYREF COLLATE Latin1_General_CI_AS
尝试将任何
varchar
类型转换为nvarchar
,例如ON cast(col as nvarchar)=cast(colb as nvarchar)
不良表格设计的典型症状。如果你认为你必须向你的查询添加Case/Caltube,你应该再看一看表的设计并考虑改变!可能重复@LONG Mar-尝试将任何varchar类型转换为nvarchar,这是我的情况。谢谢!忘记最初的问题,糟糕的数据库设计。这取决于你是否控制了这个列。我从上游数据库采购,可以进行整理以与edw整理保持一致