。。。嗨,这里有一个数据库。我试图弄清楚如何在SQLite中使用LIKE
和CASE
,或者一些等效的方法。我有一个prod_names表,它包含串联的数据——偶尔只有一个项,但通常包含几个逗号分隔的项。对于我的新">Toy"列,我需要找到包含">CapGun"的每个记录。以下代码仅在">CapGun"是唯一项目时有效,而在存在多个项目时无效(例如,">BarbieDoll、CapGun、EasyBakeOven'(。
SELECT
customer_id,
prod_names,
CASE prod_names WHEN 'CapGun' THEN 'CG' ELSE 'not_CG' END Toy
FROM
Toys_table
ORDER BY
Toy
我尝试过各种方法,如WHEN LIKE '%CapGun%'
、WHEN INSTR(prod_names,'CapGun') > 0
和WHEN GLOB '*CapGun*'
,但它们都没有返回结果或抛出语法错误。有什么建议吗?我相信一定有一个简单的解决方案。
使用扩展的大小写语法:
CASE
WHEN prod_names LIKE '%CapGun%' THEN ...
ELSE ...
END
这允许使用任何表达式作为CASE
中的条件,包括其他列。