假设我有一个这样的表格:
name | score_a | score_b -----+---------+-------- Joe | 100 | 24 Sam | 96 | 438 Bob | 76 | 101 ... | ... | ...
我想选择score_a和score_b的最小值.换句话说,像:
SELECT name, MIN(score_a, score_b) FROM table
结果当然是:
name | min -----+----- Joe | 24 Sam | 96 Bob | 76 ... | ...
但是,当我在Postgres中尝试这个时,我得到,"没有函数匹配给定的名称和参数类型.您可能需要添加显式类型转换." MAX()和MIN()似乎跨行而不是列.
有可能做我正在尝试的事情吗?
至少(a,b):
该
GREATEST
和LEAST
功能中选择任意数量的表达式的列表,最大或最小值.表达式必须全部可转换为公共数据类型,这将是结果的类型(有关详细信息,请参见第10.5节).列表中的NULL值将被忽略.仅当所有表达式求值为NULL时,结果才为NULL.需要注意的是
GREATEST
,并LEAST
没有在SQL标准,但有一个共同的扩展.如果任何参数为NULL,则其他一些数据库使它们返回NULL,而不是仅当所有数据都为NULL时才返回NULL ...
这是LEAST()
PostgreSQL中函数文档的链接:
http://www.postgresql.org/docs/current/static/functions-conditional.html#AEN15582