目前我必须写一个像这样的查询
SELECT * FROM table WHERE value1 > 5000 OR value2 > 5000 OR value3 > 5000 OR value4 > 5000
如您所见,将5000与所有这些列进行比较。理想情况下,您可以编写像这样的查询
SELECT * FROM table WHERE 5000 GREATER(value1,value2,value3,value4)
我知道你可以做到
SELECT * FROM table WHERE 5000 IN(value1,value2,value3,value4)
但是,测试平等,不超过。
有没有办法做我正在寻找的事情?
答案 0 :(得分:1)
你可以这样做:
SELECT *
FROM table
WHERE greatest(value1, value2, value3, value4, value5) > 5000 ;
作为一个注释,这不是完全相同。如果任何值为NULL
,则返回NULL
,将其视为false。 or
版本将跳过NULL
个值。