我不确定为什么我的where子句不能完美运行。在脚本中,我使用where
子句。
DECLARE @TABLE TABLE (myvalue VARCHAR (50))
INSERT @TABLE
SELECT 14 UNION ALL
SELECT 16.5 UNION ALL
SELECT 19 UNION ALL
SELECT 24 UNION ALL
SELECT 26 UNION ALL
SELECT 2 UNION ALL
SELECT 555
SELECT DISTINCT M.myvalue
FROM @TABLE M
WHERE
(M.myvalue < '6' OR M.myvalue > '28' OR M.myvalue IS NULL)
在输出中我期待2和555,但是当我运行查询时它返回所有值:
myvalue
14.0
16.5
19.0
2.0
24.0
26.0
555.0
任何人都可以纠正我吗?
答案 0 :(得分:3)
您正在将它与带有“6”和“28”
的引号的字符串进行比较应该是:
WHERE (
M.myvalue < 6 OR M.myvalue > 28 OR M.myvalue IS NULL)
另外,正如其他人指出的那样,myvalue
列应该是数字,否则你要将字符串与数字进行比较。
DECLARE @TABLE TABLE (myvalue DECIMAL(10,2))