#sql-server
#sql-сервер
Вопрос:
Каково наилучшее решение для поиска слова в переменной? Это должно быть в инструкции Select, и если слово найдено, то должно быть возвращено ‘1’, иначе ‘0’.
Charindex или регулярное выражение?
Я пытаюсь что-то вроде этого:
Select top 100
[ReportingEntity]
,if CHARINDEX('Issuers', [ReportingEntity]) = '1' ELSE '0' END AS 'Issuers'
FROM [MSC].[dbo].[dsl_file]
И [ReportingEntity] могут иметь переменные типа:
Tickert Issuers
Fund_Manager-Issuers
Issuers of Event
...
Также хотелось бы понять, как это будет работать с регулярным выражением
Ответ №1:
Вы можете сделать это с помощью IIF или CASE
IIF
SELECT TOP 100 [ReportingEntity]
,IIF(ReportingEntity LIKE '%Issuers%', 1, 0) AS 'Issuers'
FROM [MSC].[dbo].[dsl_file]
СЛУЧАЙ
SELECT TOP 100 [ReportingEntity]
,CASE WHEN ReportingEntity LIKE '%Issuers%' THEN 1 ELSE 0 END AS 'Issuers'
FROM [MSC].[dbo].[dsl_file]