有一个表information
其结构为:
ID     properties      value
2222    name            you
2222    phone           139
2222    email           [email protected]
3333    name            she
3333    phone           138我现在想有一条SQL语句实现下面这个效果
2222     name     you         phone     139       email  [email protected]
3333     name     she         phone     138用SQL语句能实现吗?

解决方案 »

  1.   

    果然很难。
    ROW_NUMBER + MAX + DECODE + GROUP BY
      

  2.   

    select id,max(decode(properties,'name',properties,null)) "name",
        max(decode(properties,'name',value,null)) name_value,
    max(decode(properties,'phone',properties,null)) phone,
        max(decode(properties,'phone',value,null)) phone_value,
    max(decode(properties,'email',properties,null)) email
        max(decode(properties,'email',value,null)) email_value
    from information 
    group by id
      

  3.   

    select id,max(decode(properties,'name',properties,null)) "name",
        max(decode(properties,'name',value,null)) name_value,
    max(decode(properties,'phone',properties,null)) phone,
        max(decode(properties,'phone',value,null)) phone_value,
    max(decode(properties,'email',properties,null)) email
        max(decode(properties,'email',value,null)) email_value
    from information 
    group by id
      

  4.   

    果然不错, 不过properties 数目不是固定的数目,比如name phone  email,那就不行了
      

  5.   

    不定的行列转换看此贴
    http://topic.csdn.net/u/20080416/11/910e40c1-60f1-441f-8b0f-19a969d30f77.html