为什么排序规则不适用于子查询中的xml路径?

rsaldnfx  于 2021-08-09  发布在  Java
关注(0)|答案(1)|浏览(274)

我通常使用 collate SQL_Latin1_General_CP1251_CI_AS 去掉这样的重音符号。

select ('ěščřžýáíé' + '-' + (select 'ěščřžýáíé')) collate SQL_Latin1_General_CP1251_CI_AS

escrzyaie escrzyaie公司
不幸的是,在其中一个搜索查询停止工作后,我发现当与组合使用时,排序规则被忽略 for xml path 在子查询中。

select ('ěščřžýáíé' + '-' + (select 'ěščřžýáíé' for xml path(''))) 
       collate SQL_Latin1_General_CP1251_CI_AS

ěščřžýáíé-ěščřžýáíé
可以通过分别为每个部分使用排序规则来解决这个问题,但是我想知道为什么在前面的示例中它不起作用。

select ('ěščřžýáíé' collate SQL_Latin1_General_CP1251_CI_AS + '-' 
     + (select 'ěščřžýáíé' collate SQL_Latin1_General_CP1251_CI_AS for xml path('')))

escrzyaie escrzyaie公司

bfnvny8b

bfnvny8b1#

在连接之前将其强制转换为varchar

select ('ěščřžýáíé' + '-' 
             + cast((select 'ěščřžýáíé' for xml path('')) as varchar(max))) 
               collate SQL_Latin1_General_CP1251_CI_AS

相关问题