Вам нужно cast
все выражение для ведения разговора:
Если вы хотите search_name
в качестве поиска, вы можете использовать apply
:
SELECT t.*, CAST(search_name AS NVARCHAR(20)) AS search_name
FROM table t CROSS APPLY
( VALUES (CASE WHEN [AddressLine1] LIKE 'ABC%'
THEN REPLACE([AddressLine1], 'ABC', '')
WHEN [AddressLine1] LIKE 'SCHEME%'
THEN REPLACE([AddressLine1], 'QWE,', '')
WHEN [AddressLine1] LIKE 'SBLOCK%'
THEN REPLACE([AddressLine1], 'QWE', '')
WHEN [AddressLine1] LIKE 'QAZ%'
THEN REPLACE([AddressLine1], 'QAZ', '')
ELSE LTRIM([AddressLine1]) -- removed RTRIM()
END)
) tt(search_name);
. Кстати, вы можете искать по search_name
, легко не нужно использовать подзапрос или избежать повторения case
выражения.
Примечание: я удалил RTRIM()
, так как SQL Server
будет игнорировать правильные пробелы при сравнении строк.