我将如何对 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 作为条件
我有一个字符串,我需要在 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 作为条件