这是我的示例数据(没有索引,我不想创建任何索引):
CREATE TABLE tblTest ( a INT , b INT );
INSERT INTO tblTest ( a, b ) VALUES
( 1 , 2 ),
( 5 , 1 ),
( 1 , 4 ),
( 3 , 2 )
我想要a列和b列的最小值大于给定值。例如,如果给定值为 3,那么我希望返回 4。
这是我目前的解决方案:
SELECT MIN (subMin) FROM
(
SELECT MIN (a) as subMin FROM tblTest
WHERE a > 3 -- Returns 5
UNION
SELECT MIN (b) as subMin FROM tblTest
WHERE b > 3 -- Returns 4
)
这会搜索表两次——一次获取min(a)
一次获取min(b)
。
我相信只需通过一次就可以更快地做到这一点。这可能吗?