我试图将两列之间用空格连接起来并得到排序错误:
SELECT DISTINCT
p.PERSON_ID,
p.ID_NUMBER,
CONCAT(p.FULLNAMES, CONCAT(' ', p.SURNAME)) AS NAME,
o.ORG_NAME,
w.WARD_DESCRIPTION AS WARD,
ess.DESCRIPTION AS SECTOR
无法在concat操作中解决“SQL_Latin1_General_CP1_CI_AS”和“Latin1_General_CI_AS”之间的排序规则冲突
我的数据库中两个违规列的整理是:Latin1_General_CI_AS
然后我试图将空白整理到这个整理,但我不知道如何做到这一点。我的尝试:
CONCAT(p.FULLNAMES, (CONCAT((COLLATE Latin1_General_CI_AS = ' '), p.SURNAME))) AS NAME,
还是什么?
答案 0 :(得分:13)
你在每个字段之后放置了COLLATE,即最糟糕的情况:
SELECT DISTINCT
CONCAT(p.FULLNAMES COLLATE Latin1_General_CI_AS,
(CONCAT(' ' COLLATE Latin1_General_CI_AS,
p.SURNAME COLLATE Latin1_General_CI_AS))) AS NAME
FROM Person p
答案 1 :(得分:3)
这将解决您的问题:
SELECT CONCAT(p.FULLNAMES,' ' collate Latin1_General_CI_AS,p.SURNAME) AS NAME
空间的默认排序规则与数据库相同,因此它必须与列具有相同的排序规则。在我看来有点傻了
答案 2 :(得分:0)
我通过简单地使用concat运算符解决了这个问题:
p.FULLNAMES + ' ' + p.SURNAME