bianh mingxh xmingc
000001 000030 左眼000001 000031 右眼000001 000032 色觉000067 000001 视力检查000067 000019 彩超000067 000020 总胆红素000068 000003 心电图检查000068 000004 转氨酶
以下是我要问的
我想执行一条SQL语句后,如下显示
bianh  mingxh mingc000067 000030 左眼000067 000031 右眼000067 000032 色觉 000067 000019 彩超000067 000020 总胆红素
请问这条SQL语句如何写?

解决方案 »

  1.   

    000067 中的mingxh 是000001
      

  2.   

    凭什么有000067 000019 彩超000067 000020 总胆红素
    就没有000067 000001 视力检查呢?
    那000019 彩超, 000020 总胆红素的子相是不是也要出来呢?
    感觉逻辑有点混乱。
    不过要实现的话,用union肯定没问题撒
      

  3.   

    update 表名 a 
    set bianh=(select bianh from 表名 b
    where a.bianh=b.mingxh)
    where exists
    (select * from 表名 b
    where a.bianh=b.mingxh);
      

  4.   

    select bianh ,mingxh ,xmingc from table
    where start with bianh  = '000067'
    connect by prior bianh = mingxh 
    看看这个语句,我没有剩余的数据你在组合
      

  5.   

    select '000067' bianh ,mingxh ,xmingc from table
    where start with bianh  = '000067'
    connect by prior bianh = mingxh 
      

  6.   

    我的这个只能变化第一行,不知道为什么左连接没有连接上后面的,来个人帮看看?SELECT
      CASE WHEN T5.BIANH1 = T5.MINGXH2 THEN T5.BIANH2  ELSE T5.BIANH1 END AS BIANH, T5.MINGXH1 AS MINGXH
    FROM 
    (SELECT
       T3.BIANH AS BIANH1, T3.MINGXH AS MINGXH1, T3.XMINGC, T4.MINGXH AS MINGXH2, T4.BIANH AS BIANH2
     FROM TEMP2 T3
      LEFT JOIN
     
     (SELECT 
        T2.Col4 AS BIANH, T2.COL5 AS MINGXH
      FROM
        (SELECT BIANH AS Col1 FROM TEMP2) T1
         INNER JOIN 
        (SELECT BIANH AS Col4, MINGXH AS Col5 FROM TEMP2) T2 
         ON T1.Col1 = T2.Col5
      WHERE NVL(T2.COL4,0) <> 0) T4
      ON T3.BIANH = T4.MINGXH
    ) T5
    WHERE (T5.BIANH1 || T5.MINGXH1) <> (NVL(T5.BIANH2,'SSSSS') || NVL(T5.MINGXH2,'SSSSS'))