首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从第二列记录替换第一列记录

从第二列记录替换第一列记录
EN

Stack Overflow用户
提问于 2016-02-12 14:15:10
回答 3查看 72关注 0票数 1

在两个不同的数据中,Oracle中有两列。例如:我的第一列名是"FROM“,第二列是"TO”。

代码语言:javascript
复制
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查询中有没有任何方法。

产出结果:

代码语言:javascript
复制
   Bhx      ACE
   bhx      BHX
   LTN      PRA
   ltn      LTN
   lba      agp
   lba      lba
   man      ssh
   man      man
   lgw      tfs
   lgw      lgw
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-02-12 14:31:39

代码语言:javascript
复制
SELECT "From" ,case when "TO" in ('BHX', 'LTN' , 'LBA', 'LGW', 'MAN') then "From" else "To" end "To"

带有Case表达式的IN允许您检查to列的不同值,如果它们相同,则使用From列,如果不使用,则用于列。

票数 0
EN

Stack Overflow用户

发布于 2016-02-12 14:22:10

只需用相反的别名选择它们:

代码语言:javascript
复制
SELECT "To" AS "From", "From" AS "To"
FROM   my_table

顺便说一句,"from“是SQL中的一个保留词。虽然它可以解决这个问题(例如,使用引号),但对于列的名称来说,这是一个糟糕的选择,您可能会找到另一个列名。

票数 1
EN

Stack Overflow用户

发布于 2016-02-12 14:45:12

代码语言:javascript
复制
UPDATE TABLENAME
  SET From =To,
  SET To = From
   WHERE TO IN ('BHX', 'LTN' , 'LBA', 'LGW', 'MAN')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35364756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档