我想在查询中包含空格/空格字符。我使用CASE条件将值分类为:' Syrah N' Chardonnay B',...我的值和大写字母之间有一个空格。当以查看的字母开头的值时,查询是无用的(例如:' Barbaroux RS'被分类为B,但它必须是RS)。
实际查询
SELECT name
CASE
WHEN name LIKE '%N%' THEN 'Red'
WHEN name LIKE '%B%' THEN 'White'
WHEN name LIKE '%RS%' THEN 'Green'
ELSE 'Other'
END
FROM mytable
通缉查询
SELECT name
CASE
WHEN name LIKE '% N %' THEN 'Red'
WHEN name LIKE '% B %' THEN 'White'
WHEN name LIKE '% RS %' THEN 'Green'
ELSE 'Other'
END
FROM mytable
我如何编写'%空间 B 空间%' ?
答案 0 :(得分:1)
在名称之前和之后添加空格字符,然后执行LIKE
:
SELECT name
CASE
WHEN ' ' || name || ' ' LIKE '% N %' THEN 'Red'
WHEN ' ' || name || ' ' LIKE '% B %' THEN 'White'
WHEN ' ' || name || ' ' LIKE '% RS %' THEN 'Green'
ELSE 'Other'
END
FROM mytable
||
是ANSI SQL串联。一些dbms产品有其他结构......