我数据库里面有张表t_llx,里面有列名S1,S2,S3,S4,S5五个列分别代表五个时间点,存放对应的数值,我想用视图将S1,S2,S3,S4,S5五个列中存放值最大的那个列的值和它的列名取到,请问如何去实现

解决方案 »

  1.   


    CREATE TABLE test (a INT,b INT ,c INT ,d INT);
    INSERT INTO test VALUES(1,2,3,4);
    INSERT INTO test VALUES(5,8,6,7);
    SELECT * FROM test;
    SELECT GREATEST(A, B, C, D) MMAX,
           CASE
             WHEN A = GREATEST(A, B, C, D) THEN
              'a'
             WHEN B = GREATEST(A, B, C, D) THEN
              'b'
             WHEN C = GREATEST(A, B, C, D) THEN
              'c'
             WHEN D = GREATEST(A, B, C, D) THEN
              'd'
           END MCOL
      FROM TEST;
      输出:
    MMAX MCOL
    8 b
    4 d