SQL:如何使用基于字母的其他值替换列?

时间:2017-07-14 22:12:37

标签: sql sqlite

我有下表,并希望使用sqlite3进行转换,并且不知道如何,希望有人可以帮助我。

我想从表中走出来:

A   B       C   E   F   G   .. X
1   1234    id1 A   B   ..      
1   42332   id2 B   A   ..      
2   50443   id3 A   B   ..      
2   4532    id4 F   D   ..  
3   5000    id5 B   A   ..      
3   3333    id6 B   A   ..      

到这张表:

A   B       C           E   F   G   .. X
1   1234    1:1234_A_B  A   B   ..      
1   42332   1:42332_A_B B   A   ..      
2   50443   2:50443_A_B A   B   ..      
2   4532    2:4532_D_F  F   D   ..      
3   5000    3:5000_A_B  B   A   ..      
3   3333    3:3333_A_B  B   A   ..  

所以C列应该是colA:colB_col(E或F,取决于字母)_col(E或F,取决于字母)

1 个答案:

答案 0 :(得分:1)

不确定,为什么要更新它,但下面的内容可以帮助您。

select A,B,A || ':' || B || '_' || 
case 
    when E < F
    then 
         E || '_' || F
    else 
         F || '_' || E
    end
 ... -- rest of the fields
from table_name

如果您愿意,可以使用上述查询的一部分来创建更新statement。不确定表结构中的主键/唯一键是什么,因此无法帮助您。