我有一个这样的 SQL 查询:
SELECT sum(CASE
WHEN user_ad_type = '2' THEN
10
WHEN user_ad_type = '3' THEN
15
WHEN user_ad_telegram != '' OR user_ad_telegram IS NOT NULL THEN
3
WHEN user_ad_website != '' OR user_ad_website IS NOT NULL THEN
3
ELSE
0
END) sum
FROM ads
WHERE user_id = 57
但它没有正确计算所有项目的总和。看看我的桌子: 点击这里打开 img。
所以所有项目的总和应该是21,但是如果你看一下这个 img,你会看到它是15。因为user_ad_type + user_ad_telegram + user_ad_website
不为空或有特殊值,并且此项的总和为 21。有什么问题?
我什至测试了这个:
SELECT sum(CASE
WHEN user_ad_type = '2' THEN
10
WHEN user_ad_type = '3' THEN
15
WHEN user_ad_telegram IS NOT NULL THEN
3
WHEN user_ad_website IS NOT NULL THEN
3
ELSE
0
END) sum
FROM ads
WHERE user_id = 57
但它仍然没有计算所有项目。
我想检查是否某些列不为空或具有特殊值,然后将价格添加到它们并获取该项目的总价。