我有一个名为product_pairs的表,其中包含以下内容
product_pair, product_views_1, product_views_2
我想编写一个查询,它将有效地输出一个包含以下列的新表
product_pair, comparison_indicator
如果product_views_1>,compare_indicator = 1否则,product_views_2和comparison_indicator = 0。
我目前正在使用类似
的简单查询SELECT product_pair, CASE WHEN product_views_1 > product_views_2 THEN 1 ELSE 0 END as comparison_indicator
FROM product_pairs
然而,这似乎会导致错误。
有谁知道发生了什么事?
答案 0 :(得分:1)
假设查询在您的SQL引擎中运行,我可以从这样一个简单的查询中想到唯一可能的问题是product_views_2
是NULL
并且您希望表达式返回{{1而不是1
:
0
涉及SELECT product_pair,
(CASE WHEN coalesce(product_views_1, 0) > coalesce(product_views_2, 0) THEN 1
ELSE 0
END) as comparison_indicator
FROM product_pairs;
的比较总是错误的 - 当然,NULL
除外。
答案 1 :(得分:-3)
这应该有效
SELECT 'product_pair' = CASE WHEN product_views_1 > product_views_2
THEN 1 ELSE 0 END as comparison_indicator
FROM product_pairs