Использовать Collate в CONCAT
Я пытался конкатонировать 2 столбца с пробелом между ними и получил ошибку сортировки:
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
не удается разрешить конфликт параметров сортировки между "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,
или что-то?
3 ответов
вы ставите сортировку после каждого поля, а именно в худшем случае:
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
это исправит вашу проблему:
SELECT CONCAT(p.FULLNAMES,' ' collate Latin1_General_CI_AS,p.SURNAME) AS NAME
пространство получает те же параметры сортировки по умолчанию, что и база данных, поэтому оно должно иметь те же параметры сортировки, что и ваши столбцы. По-моему, это глупо