选择最少的多列

SRI*_*RAM 2 sql t-sql sql-server sql-server-2008

我有三个名为list1,list2,list3的十进制列.我想在一个查询中找到最少三个.
我累了这个:

SELECT Least(list1, list2, list3) 
FROM   table1 
Run Code Online (Sandbox Code Playgroud)

它会抛出一个least无法识别的错误函数.

Joh*_*Woo 7

尝试使用 UNION

SELECT MIN(x.a)
FROM
    (
        SELECT list1 a FROM table1
        UNION
        SELECT list2 a FROM table1
        UNION
        SELECT list3 a FROM table1
    ) x
Run Code Online (Sandbox Code Playgroud)

更新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
Run Code Online (Sandbox Code Playgroud)

SQLFiddle演示