#sql #sql-server
Вопрос:
Я выполнил приведенный ниже запрос, но получил результат в виде нулевых значений.
SELECT CAST(REPLACE(REPLACE(REPLACE(REPLACE(FIRST_NAME,'null',''),'N/A',''),'no',''),'NA','') ' ' REPLACE(REPLACE(REPLACE(REPLACE(LAST_NAME,'null',''),'N/A',''),'no',''),'NA','')) AS 'FULL_NAME' FROM NAMES
Вместо этого я хочу, чтобы мой результат был:
FULL_NAME
___________
Ankit Kumar
Mayank Sharma
Puneet Kumar
Rajesh
Narender
Robert
Chahuhan
Jaswinder Singh
Rakesh
Ответ №1:
Более поздние версии SQL Server поддерживают concat_ws()
:
select concat_ws(' ',
(case when first_name not in ('na', 'no', 'null') then first_name end),
(case when last_name not in ('na', 'no', 'null') then last_name end)
) as full_name
В более старых версиях вы можете использовать:
select ltrim( (case when first_name not in ('na', 'no', 'null') then ' ' first_name else '' end)
(case when last_name not in ('na', 'no', 'null') then ' ' last_name else '' end)
) as full_name
Комментарии:
1. Привет,Гордон, ваш запрос сработал, спасибо за быстрый ответ.