Как бы я использовал подстановочный знак для указанной c строки в SQL - PullRequest
1 голос
/ 03 февраля 2020

У меня есть строка, которую мне нужно выбрать в операторе CASE:

LLF_RET_mob

Однако, когда я использую следующую строку в моем операторе LIKE в SQL, возвращается ноль:

%LLF\\_RET_\\_mob%

Какой правильный синтаксис использовать для этого символа?

1 Ответ

1 голос
/ 03 февраля 2020

Вы должны использовать '%LLF\\_RET\\_mob%', как в примере ниже

#standardSQL
WITH `project.dataset.table` AS (
  select 1 id, 'aaaLLF_RET_mobbbb' col union all
  select 2, 'aaaLLFRETmobbbb'
)
SELECT *
FROM `project.dataset.table`
WHERE col LIKE '%LLF\\_RET\\_mob%'

Или вы можете использовать регулярное выражение, как в примере ниже

#standardSQL
WITH `project.dataset.table` AS (
  SELECT 1 id, 'aaaLLF_RET_mobbbb' col UNION ALL
  SELECT 2, 'aaaLLFRETmobbbb'
)
SELECT *
FROM `project.dataset.table`
WHERE REGEXP_CONTAINS(col, r'LLF_RET_mob')

Очевидно, что вы можете использовать как LIKE или REGEXP_CONTAINS в качестве условие в выписке CASE

...