我正在尝试为SQL创建一个select statemeny,我试图在具有十进制类型的字段中查看值不为零的所有结果
SELECT * FROM Table1 WHERE Decimalvalue !== '0';
是我正在尝试的,它似乎不适合我,任何想法?
答案 0 :(得分:2)
SQL中的正确比较运算符是<>
。并且,您不应该将已知数字与字符串进行比较:
WHERE Decimalvalue <> 0;
一些考虑因素。如果您有NULL
个值,这些值也会被过滤掉,因此您可能需要:
WHERE Decimalvalue <> 0 or DecimalValue is null;
您使用的是“十进制”一词,或许没有意识到它在SQL中具有特定含义。 “十进制”是指固定点表示,而不是浮点表示。对于浮点值,您可以使结果看起来完全相同,但在第n个小数位有所不同。在这种情况下,您可以执行以下操作:
WHERE abs(Decimalvalue) > 0.0001 or DecimalValue is null;
或者你满意的任何门槛。
答案 1 :(得分:1)
尝试
SELECT *
FROM Table1
WHERE Decimalvalue <> '0';