我需要检索超出范围的值引用最小列字段和最大字段。 我的sql表中有值字段,最小字段和最大字段。例如,值40超出50到60之间的范围,因此需要显示,与74和37的值相同。
Value Min Max
95 85 100
40 50 60
74 60 70
37 50 60
我试过这段代码,但似乎不行。感谢任何建议。
SELECT [value], [Min], [Max] FROM [A].[dbo].[VW_Process] WHERE (VW_Process.Value NOT BETWEEN VW_Process.Min AND VW_Process.Max)
答案 0 :(得分:1)
SELECT * FROM TABLE WHERE VALUE NOT BETWEEN MIN AND MAX
我知道这是你第一次放入你的OP,但我的repro如下显示它有效
CREATE TABLE T1
(
VAL INT,
MINVAL INT,
MAXVAL INT
)
INSERT INTO T1 VALUES(95,85,100)
INSERT INTO T1 VALUES(40,50,60)
INSERT INTO T1 VALUES(74,60,70)
INSERT INTO T1 VALUES(37,50,60)
SELECT Val FROM T1 where VAL NOT BETWEEN MINVAL AND MAXVAL
返回3行 - 40,74,37 - 所有都不在MIN和MAX之间,但不返回95,显然介于85和100之间
答案 1 :(得分:1)
如果你的工作不起作用,应该这样做;
SELECT [value], [Min], [Max]
FROM [A].[dbo].[VW_Process]
WHERE Value < Min
AND Value > Max
答案 2 :(得分:1)
试试这个
SELECT [value], [Min], [Max]
FROM [A].[dbo].[VW_Process]
WHERE (Value NOT BETWEEN [Min] AND [Max])
答案 3 :(得分:0)
所以,我们不知道你的领域的类型,试试这个:
SELECT value, Min, Max
FROM [A].[dbo].[VW_Process]
WHERE cast(Value as int) NOT BETWEEN cast(Min as int) AND cast(Max as int)