我将如何对 SQL 中的特定字符串使用通配符

How would i use a wildcard for a specific string in SQL

我有一个字符串,我需要在 CASE 语句中 select:

LLF_RET_mob

但是,当我在 SQL 中的 LIKE 语句中使用以下字符串时,它 returns null:

%LLF\_RET_\_mob%

用于此通配符的正确语法是什么?

您应该使用 '%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')

显然,您可以在 CASE 语句

中同时使用 LIKE 或 REGEXP_CONTAINS 作为条件