我的SQLite3数据库中有一些存储状态的行。 Normaly这个状态只是一个单词,但在某些情况下,会有一个参考号添加到此状态。
因此,例如状态可以包含以下值:
Created
Defined
Converted from xxx <- where xxx is the unique reference number
Closed / changed from xxx
...
等等。
现在我想将各种状态映射到不同的状态,因为为了我的目的,这些状态中的一些具有相同的含义(例如,创建和定义)。
在Oracle中,至少对于唯一字符串,我可以使用解码函数。但是,如何使用唯一ID处理值。是否有类似decode_like
函数的东西可用于此?
结果应为:
Created -> CRT
Defined -> CRT
Converted from xxx -> CVT
Closed / changed from xxx -> CL
等
这甚至可以用SQL完成,还是我必须在我的java代码中实现这个转换?
答案 0 :(得分:1)
UPDATE MyTable
SET Status = CASE
WHEN Status = 'Created' OR Status = 'Defined' THEN 'CRT'
WHEN Status LIKE 'Converted from %' THEN 'CVT'
WHEN Status LIKE 'Closed / changed from %' THEN 'CL'
ELSE Status
END