(Выберите FirstName + ' ' + LastName из Members выдает ошибку. Неявное преобразование значения varchar в varchar не может быть выполнено

Select FirstName + ' ' + LastName from Members 

Выдает ошибку:

Неявное преобразование значения varchar в varchar невозможно, поскольку сопоставление значения не разрешено из-за конфликта сопоставления.

Но работает нормально когда беру FirstName а также LastName в отдельных столбцах, таких как

Select FirstName, LastName From Members

Я хочу выбрать имя и фамилию в одном столбце

4 ответа

Решение

Кажется, у вас разные таблицы в одной таблице - очень необычно

Попробуй это:

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

Посмотри, какая сортировка у тебя в базе данных. Вы можете увидеть это в свойствах.

Это сопоставление вы должны добавить в свои выписки, чтобы временно изменить сопоставление поля.

пример:

Ваша база данных имеет параметры сортировки "Latin1_General_CS_AS", параметры сортировки tempdb - "Latin1_General_CI_AS", ваш оператор должен выглядеть следующим образом, поскольку динамический SQL будет обрабатываться в базе данных tempdb.

Попробуй это

select CAST(FirstName AS VARCHAR) + ' ' + CAST(LastName AS VARCHAR)from Members 
or
select CONVERT(VARCHAR(100),FirstName) + ' ' + CONVERT(VARCHAR(100),LastName )from Members 

Попробуй это

Select concat(concat(FirstName , ' '), LastName) as final from Members 
Другие вопросы по тегам