见一sql,不名其意,问之:
SELECT
(
SELECT
max(x) 
FROM(
SELECT x = r0 UNION ALL
SELECT x = r1 UNION ALL
                            SELECT x = r2 UNION ALL
                           SELECT x = r3 UNION ALL
SELECT x = r4
)a 
)
FROM tb
                中间的这段是什么意思:
SELECT x = r0 UNION ALL
SELECT x = r1 UNION ALL
                            SELECT x = r2 UNION ALL
                            SELECT x = r3 UNION ALL
SELECT x = r4
            union all 我到知道是什么意思,但是这样用还真没见过(直接就字段了,没from),请大家指示指示???????

解决方案 »

  1.   

    你直接运行这段就知道了 得到的结果是
    x
    r0
    r1
    r2
    r3
    r4
      

  2.   

    http://blog.csdn.net/josy/archive/2008/12/25/3603018.aspx
      

  3.   

    FROM(
    SELECT x = r0 UNION ALL
    SELECT x = r1 UNION ALL
    SELECT x = r2 UNION ALL
    SELECT x = r3 UNION ALL
    SELECT x = r4
    )a  这就是 a 表
      

  4.   

    SELECT x = r0 UNION ALL
    SELECT x = r1 UNION ALL
    SELECT x = r2 UNION ALL
    SELECT x = r3 UNION ALL
    SELECT x = r4
    还可以更简单点.
    -->
    SELECT x = 'r0' UNION
    SELECT 'r1' UNION
    SELECT 'r2' UNION
    SELECT 'r3' UNION
    SELECT 'r4'
      

  5.   

    SELECT
    (SELECT max(x) 
     FROM(
    SELECT x = r0 UNION ALL
    SELECT x = r1 UNION ALL
    SELECT x = r2 UNION ALL
    SELECT x = r3 UNION ALL
    SELECT x = r4
    )a  
    )--子查询
    FROM tb这是一个求每行从r0到r4最大值的语句,UNION ALL查询部份属于子查询,FROM a这个a 就是通过子查询产生的派生表。
      

  6.   

    x
    r0
    r1
    r2
    r3
    r4可能x就是属于r0--r4的这几个值吧.应当属于已知的固定值.