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

时间:2010-12-19 17:08:43

标签: sql-server

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

select * from urlpath where substring(urlpathpath, 3, len(urlpathpath))
not in (select accessuserpassword from accessuser where accessuserparentid = 257)

我收到错误:

Cannot resolve the collation conflict between 
"SQL_Latin1_General_CP1_CI_AI" and 
"SQL_Latin1_General_CP1_CI_AS" in the equal to operation.

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

感谢名单

2 个答案:

答案 0 :(得分:10)

您可以在要“重新整理”的列的列名称后面添加COLLATE CollationName。 (注意:校对名称是文字的,没有引用)

答案 1 :(得分:0)

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

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) 

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