下午好。也许是一个相对简单的SQL问题:
我有一个变量。它表示时间序列数据集中的月数。对于每个条目,当满足某些条件时,该计数将逐渐增加1。它可以有一个从0到任何东西的整数值,尽管它不会高于160左右。
但是,如果没有关于月数的数据,则变量的值为" X,"这就是问题所在。我试图用WHERE条件组合一个查询,该条件指定所述变量大于或等于2(或3或6 - 它是任意的)。正如您可能推测的那样,SQL无法解析" X"价值(对于所有意图和目的,我们可以定义为非常高的数字)。
然后,如何为分配" X"的变量创建一个比较条件?估算一个任意高的数字并保留所有其他情况的相应数值?我怀疑它涉及一个"案例"功能,但我到目前为止还没能成功地把任何东西放在一起。
if operator == '+':
correct_answer = random_number1 + number2
elif operator == '-':
correct_answer = random_number1 - number2
else:
correct_answer = random_number1 * number2
感谢您抽出时间和考虑。
答案 0 :(得分:1)
要为X赋予任意值,您确实会使用CASE表达式。这是一个赋予它10的值:
EXPLAIN DELETE
FROM mysitealias_comments
WHERE comment_approved = 'spam';
答案 1 :(得分:0)
您可以尝试复合语句,如:
如果列是VARCHAR:
WHERE CAST(a.variable as INT) >= 2 AND a.variable <> 'X';
更大的问题是为什么你首先要混合价值观。为什么不将列专门设置为数字类型,并允许它为缺失值为NULL?