Sql server 无法解决select语句中第5列的排序规则冲突
我试图将几个字段的组合显示为一个字段。(客户要求我这样做)。我尝试了以下命令,但出现了上述错误: SQL代码段:Sql server 无法解决select语句中第5列的排序规则冲突,sql-server,Sql Server,我试图将几个字段的组合显示为一个字段。(客户要求我这样做)。我尝试了以下命令,但出现了上述错误: SQL代码段: SELECT dbo.VPayment_2.Serial, dbo.VPayment_1.Description, dbo.VPayment_2.Money, dbo.VPayment_1.PaymentType,, 'Payment ' + dbo.VPayment_1.PaymentType + ' - ' + '
SELECT dbo.VPayment_2.Serial, dbo.VPayment_1.Description, dbo.VPayment_2.Money, dbo.VPayment_1.PaymentType,,
'Payment ' + dbo.VPayment_1.PaymentType + ' - ' + ' Serial ' + CAST(dbo.VPayment_2.Serial AS nvarchar(15))
+ '(' + dbo.VPayment_1.Description + ')' AS Compact Info
FROM dbo.VPayment_2 INNER JOIN
dbo.VPayment_1 ON dbo.VPayment_2.ID = dbo.VPayment_1.ID
因此最终结果如下所示:
---------------------------------------------------------------------------
Serial Description Money PaymentType Compact Info
123456 some info 500$ Check Payment :Check - Serial 123456 - some info
0 some info2 100$ In Cash Payment :In Cash - Serial 0 - some info
为了实现这一点,我从讨论中的表中创建了两个视图,然后使用ID将这两个视图内部连接起来,以便获得详细的结果。问题是,当我添加Compact Info字段时,该字段是其他字段的组合,它会生成错误:
无法解决select语句中第5列的排序规则冲突
当我不比较任何东西时就会发生这种情况。听起来像是
dbo.VPayment\u 1.PaymentType
和dbo.VPayment\u 2.Serial
具有不同的排序规则(这不仅发生在比较时,还发生在联合、连接等时)
有几个修复方法:
SELECT
列表中指定COLLATE
子句来完成此操作,例如
SELECT PaymentType COLLATE Latin1_General_CI_AI
... FROM ...
... 'Payment ' + dbo.VPayment_1.PaymentType COLLATE Latin1_General_CI_AI
+ ' - ' + ' Serial ' + CAST(dbo.VPayment_2.Serial COLLATE Latin1_General_CI_AI
AS nvarchar(15))
谢谢,但当我试着把它设置为波斯语时,它说它是无效的?那我该怎么展示波斯语角色呢?我相信SQL Server 2008支持波斯语排序,我已经基于它设置了我的数据库!!没有波斯语这样的东西。也许你的意思是波斯语,太棒了:)是的,就是这样:)上帝保佑你,先生,非常感谢你:)