list1、list2、list3 という名前の 3 つの 10 進数列があります。1 回のクエリで最小 3 つを見つけたい。
私はこれに疲れました:
SELECT Least(list1, list2, list3)
FROM table1
least
関数が認識されないというエラーがスローされます。
list1、list2、list3 という名前の 3 つの 10 進数列があります。1 回のクエリで最小 3 つを見つけたい。
私はこれに疲れました:
SELECT Least(list1, list2, list3)
FROM table1
least
関数が認識されないというエラーがスローされます。
使ってみてください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
他の解決策、
case when col1 < col2
then case when col1 < col3
then col1
else col3 end
else case when col2 < col3
then col2
else col3 end;
これは、テーブルに複数の行がある場合に機能します
select c.mlist from table1 a
cross apply
(
select min(list1) mlist from
(
select list1
union all
select list2
union all
select list3
) b
) c