在两个不同的数据中,Oracle中有两列。例如:我的第一列名是"FROM“,第二列是"TO”。
From TO
Bhx ACE
Ace BHX
LTN PRA
PRA LTN
lba agp
agp lba
man ssh
ssh man
lgw tfs
tfs lgw我想要的是:如果"TO“列是"BHX、LTN、LBA、LGW、MAN”,那么从“替换列”到“记录”.在Oracle查询中有没有任何方法。
产出结果:
Bhx ACE
bhx BHX
LTN PRA
ltn LTN
lba agp
lba lba
man ssh
man man
lgw tfs
lgw lgw发布于 2016-02-12 14:31:39
SELECT "From" ,case when "TO" in ('BHX', 'LTN' , 'LBA', 'LGW', 'MAN') then "From" else "To" end "To"带有Case表达式的IN允许您检查to列的不同值,如果它们相同,则使用From列,如果不使用,则用于列。
发布于 2016-02-12 14:22:10
只需用相反的别名选择它们:
SELECT "To" AS "From", "From" AS "To"
FROM my_table顺便说一句,"from“是SQL中的一个保留词。虽然它可以解决这个问题(例如,使用引号),但对于列的名称来说,这是一个糟糕的选择,您可能会找到另一个列名。
发布于 2016-02-12 14:45:12
UPDATE TABLENAME
SET From =To,
SET To = From
WHERE TO IN ('BHX', 'LTN' , 'LBA', 'LGW', 'MAN')https://stackoverflow.com/questions/35364756
复制相似问题