假设我有下表:
CREATE TABLE numbers
(
key integer NOT NULL DEFAULT 0,
number1 integer NOT NULL DEFAULT 0,
number2 integer NOT NULL DEFAULT 0,
number3 integer NOT NULL DEFAULT 0,
number4 integer NOT NULL DEFAULT 0,
CONSTRAINT pk PRIMARY KEY (key),
CONSTRAINT nonzero CHECK (key <> 0)
)
我要检索的是所有 4 个数字的给定键的最小值,但忽略那些为零的值。
当我认为我会遇到零问题时,我从这样的事情开始:
SELECT LEAST(number1, number2, number3, number4) FROM numbers WHERE key = 1
例如,如果我有我想要返回的元组(1, 5, 0, 3, 2)
,2
或者(2, 3, 0, 0, 0)
我想要返回3
等等。
这可以在单个查询中完成(或者可能是嵌套的),我真的不想编写一个过程来做到这一点。