我有三個值,我必須找到這些值MAX
值查找聲明的值(變量)MAX值
例子:
DECLARE @r int=10
DECLARE @s int=15
DECLARE @t int=50
SELECT MAX(@r, @s, @t)
我必須找到50這樣
我有三個值,我必須找到這些值MAX
值查找聲明的值(變量)MAX值
例子:
DECLARE @r int=10
DECLARE @s int=15
DECLARE @t int=50
SELECT MAX(@r, @s, @t)
我必須找到50這樣
您應該使用這樣的代碼:
DECLARE @temp TABLE (a INTEGER)
INSERT INTO @temp VALUES(1)
INSERT INTO @temp VALUES(2)
INSERT INTO @temp VALUES(3)
SELECT MAX(a) FROM @temp
您不能運行MAX
更多變量。 MAX()
只接受1個參數,即表中的列名。
但是,如果你必須使用變量,那麼:
DECLARE @temp TABLE(col1 INTEGER)
DECLARE @r int=10
DECLARE @s int=15
DECLARE @t int=50
INSERT INTO @temp(col1) values(@r)
INSERT INTO @temp(col1) values(@s)
INSERT INTO @temp(col1) values(@t)
SELECT MAX(col1) FROM @temp
謝謝你拉杜先生。它的好... –
不要忘記,如果你找到了一個最適合你的答案,那麼把這個答案標記爲正確答案。 –
你不應該浪費在臨時表的解決方案資源。
只是使所有這些變量的聯合。
DECLARE @r int=10
DECLARE @s int=15
DECLARE @t int=50
SELECT max(t.value)
from (select @r as value
union
select @s as value
union
select @t as value) t
SELECT max(v)
FROM (
SELECT 1 as v UNION
SELECT 2 as v UNION
SELECT 3 as v
) t
DECLARE @r int=10, @s int=15, @t int=50
SELECT max(val)
from (values(@r),(@s),(@t)) X(val)
一個臨時表會解決這個問題'聲明@tmpTable表(價值整數)',插入你的價值觀臨時表,並選擇'MAX(值)' –