2017-07-14 74 views
0

我有下面的表,并想使用sqlite3进行转换,并不知道如何,希望有人可以帮助我。SQL:如何用基于字母表的其他值替换列?

我想从表中去:

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柱应该是可乐:colB_col(E或F,取决于字母)_col( E或F,这取决于字母表)

+1

你为什么要这么做?所有的信息已经在您的表格中。在一列中存储多个值是不好的设计。 – HoneyBadger

回答

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。不确定表结构中的主键/唯一键,所以无法帮到您。

+0

此更新不需要密钥。 –