sql - 选择多列中的最小值

标签 sql sql-server sql-server-2008 tsql

我有三个十进制列,分别命名为 list1、list2、list3。 我想在单个查询中找到三个中的最小值。
我厌倦了这个:

SELECT Least(list1, list2, list3) 
FROM   table1 

它抛出一个错误,least is not recognized function。

最佳答案

尝试使用UNION

SELECT MIN(x.a)
FROM
    (
        SELECT list1 a FROM table1
        UNION
        SELECT list2 a FROM table1
        UNION
        SELECT list3 a FROM table1
    ) x

更新 1

SELECT ID,MIN(x.a)
FROM
    (
        SELECT ID,list1 a FROM table1
        UNION
        SELECT ID,list2 a FROM table1
        UNION
        SELECT ID,list3 a FROM table1
    ) x
GROUP BY ID

SQLFiddle Demo

关于sql - 选择多列中的最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12948329/

相关文章:

php - SQL/PHP - 在 PHP 中从 UNION 获取表名

c# - LINQ - 具有可为空值的多个左联接

sql-server - 无法将 Debezium 0.9.2 连接到 SQL Server 2008 R2

sql - 删除表中的记录不在删除语句中?

tsql - T-SQL - 交叉应用到 PIVOT? (将数据透视表与表值函数一起使用)?

SQL "Where Not Exists"未返回任何行

mysql - 如何显示所有用户定义的变量(MySQL)

php - [PHP]SQL 表从 session 变量中给出不正确的值

sql-server - 查询计划优化器是否适用于连接/过滤的表值函数?

sql - 如何扩展此SQL查询以找到k个最近的邻居?