Найдите слово в переменной и отобразите 1 еще 0

#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]