【发布时间】:2020-01-15 21:46:03
【问题描述】:
这是我的代码:
SELECT
CASE your_text
WHEN contains('hate') THEN 'hater'
WHEN contains('love') THEN 'lover'
ELSE 'other'
END haterOrLover,
count(*) AS total_count
FROM a_table
GROUP BY haterOrLover
如果只存在 contains()!
我想统计一下有多少仇敌、恋人以及这种格式的结果:
+--------------+-------------+
| haterOrLover | total_count |
+--------------+-------------+
| hater | 1 |
+--------------+-------------+
| lover | 2 |
+--------------+-------------+
| other | 1 |
+--------------+-------------+
试过了:
WHEN your_text like '%hate%' THEN 'hater'
WHEN '%hate%' THEN 'hater'
但没用。
如何检查记录是否包含“your_text”列中的特定单词?
编辑
如何重现:
CREATE TABLE a_table
(
id char(10) PRIMARY KEY,
your_text char(250) NOT NULL
);
INSERT INTO a_table
(id, your_text)
VALUES
(1, 'I love dogs'),
(2, 'I hate cats'),
(3, 'I like rabits'),
(4, 'I love haskis');
谢谢
解决方案:
SELECT
CASE
WHEN your_text like '%hate%' THEN 'hater'
WHEN your_text like '%love%' THEN 'lover'
ELSE 'other'
END haterOrLover,
count(*) AS total_count
FROM a_table
GROUP BY haterOrLover
【问题讨论】:
标签: sql string sqlite substring case