SQL更改字段选择中的排序规则

And*_*dez 8 sql-server

我正在尝试进行以下选择:

select * from urlpath where substring(urlpathpath, 3, len(urlpathpath))
not in (select accessuserpassword from accessuser where accessuserparentid = 257)
Run Code Online (Sandbox Code Playgroud)

我收到错误:

Cannot resolve the collation conflict between 
"SQL_Latin1_General_CP1_CI_AI" and 
"SQL_Latin1_General_CP1_CI_AS" in the equal to operation.
Run Code Online (Sandbox Code Playgroud)

有谁知道我如何作为整理,或允许我匹配这种情况的东西?

感谢名单

Luc*_*ero 13

您可以COLLATE CollationName在要"重新整理"的列的列名后添加.(注意:排序规则名称是文字,未引用)


小智 6

您甚至可以对查询进行整理以使用该查询创建新表,例如:

SELECT 
    * 
INTO 
    #TempTable  
FROM 
    View_total
WHERE 
        YEAR(ValidFrom) <= 2007 
    AND YEAR(ValidTo)>= 2007 
    AND Id_Product = '001' 
    AND ProductLine COLLATE DATABASE_DEFAULT IN (SELECT Product FROM #TempAUX) 
Run Code Online (Sandbox Code Playgroud)

COLLATE DATABASE_DEFAULT 导致 COLLATE 子句继承当前数据库的排序规则,消除两者之间的差异