PostgreSQL中case when与position包含用法
在PostgreSQL中,CASE WHEN
可以在查询中使用以进行条件判断,而 POSITION
可以用来获取子字符串在字符串中的位置。
以下是使用 CASE WHEN
和 POSITION
的例子:
假设我们有一个名为 products
的表,其中有一个字段 name
,我们想要根据 name
中是否包含某些特定的词汇来对产品进行分类。
SELECT
name,
CASE
WHEN POSITION('apple' IN name) > 0 THEN 'contains_apple'
WHEN POSITION('banana' IN name) > 0 THEN 'contains_banana'
ELSE 'neither'
END as category
FROM
products;
在这个例子中,我们对每个产品的 name
进行检查,使用 CASE WHEN
结构来判断 name
中是否包含 'apple' 或 'banana'。如果包含,我们就给产品分配相应的类别;如果既不包含 'apple' 也不包含 'banana',则分配给 'neither' 类别。POSITION('apple' IN name)
会返回 'apple' 在 name
字段中的位置(如果存在的话),如果不存在,则返回 0。通过判断这个返回值是否大于 0,我们可以确定 'apple' 是否在 name
中出现。
评论已关闭