Select FirstName + ' ' + LastName from Members
给出错误:
无法执行varchar值到varchar的隐式转换,因为由于排序规则冲突而无法解析值的排序规则。
但是,当我将FirstName
和LastName
放在像
Select FirstName, LastName From Members
我想在一列中选择名字和姓氏
答案 0 :(得分:1)
似乎你在同一张表中有不同的排序规则 - 非常不寻常
试试这个:
SELECT
FirstName COLLATE DATABASE_DEFAULT + ' '
+ LastName COLLATE DATABASE_DEFAULT AS FullName
FROM Members
如果这样做,我建议您将排序规则更改为FirstName和LastName相同,而不是更正您的查询。
这是如何更改排序规则的示例:
ALTER TABLE Members
ALTER COLUMN LastName
varchar(20) COLLATE DATABASE_DEFAULT NOT NULL
答案 1 :(得分:0)
试试这个
select CAST(FirstName AS VARCHAR) + ' ' + CAST(LastName AS VARCHAR)from Members
or
select CONVERT(VARCHAR(100),FirstName) + ' ' + CONVERT(VARCHAR(100),LastName )from Members
答案 2 :(得分:0)
查看tempdb上的排序规则。你可以在属性中看到它。
您必须将此排序规则添加到语句中以更改临时字段的排序规则。
示例:
您的数据库有一个排序规则" Latin1_General_CS_AS",tempdb的排序规则是" Latin1_General_CI_AS"您的语句必须如下所示,因为动态SQL将在tempdb中处理
答案 3 :(得分:-1)
试试这个
Select concat(concat(FirstName , ' '), LastName) as final from Members