SQL选择十进制不为0

时间:2014-05-03 12:45:32

标签: sql decimal where

我正在尝试为SQL创建一个select statemeny,我试图在具有十进制类型的字段中查看值不为零的所有结果

SELECT * FROM Table1 WHERE Decimalvalue !== '0';

是我正在尝试的,它似乎不适合我,任何想法?

2 个答案:

答案 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';