获取sql server中每行的MAX和MIN值

New*_*ikh 1 sql sql-server sql-server-2005 sql-server-2008

我有一组带有值的行

在此输入图像描述

我希望以下OutPut具有单独的Max和min值

在此输入图像描述

对不起,可怜的prntsceen.我不知道如何在stackoverflow中绘制表格.

Ric*_*iwi 11

select value1, value2, value3, value4,
       [min]=(select min(value) from (
              select value1 union all
              select value2 union all
              select value3 union all
              select value4) X(value)),
       [max]=(select max(value) from (
              select value1 union all
              select value2 union all
              select value3 union all
              select value4) Y(value))
  from tbl;
Run Code Online (Sandbox Code Playgroud)

要将NULL识别为最小值,请使用以下代码

select value1, value2, value3, value4,
       [min]=(select TOP(1) value from (
                 select value1 union all
                 select value2 union all
                 select value3 union all
                 select value4) X(value)
              ORDER BY value ASC),
       [max]=(select TOP(1) value from (
                 select value1 union all
                 select value2 union all
                 select value3 union all
                 select value4) X(value)
              ORDER BY value DESC)
  from tbl;
Run Code Online (Sandbox Code Playgroud)