oracle – 如何使用同一个表中另外两列的连接来更新列

栏目: 数据库 · Oracle · 发布时间: 7年前

内容简介:首先,您违反了规范化规则.你必须重新考虑设计.如果您有表列中的值,那么要获得计算值,您只需要一个select语句来获取您想要的结果.存储计算值通常是一个坏主意,并被认为是一个糟糕的设计.无论如何,因为你是11g,如果你真的想要一个计算列,那么我建议使用VIRTUAL COLUMN而不是手动更新列. UPDATE语句涉及很多开销.使用虚拟列可以减少大量开销.此外,您将完全摆脱手动工作和那些代码行来进行更新. Oracle为您完成工作.

我有一个包含3列a,b和c的表.我想知道如何更新第三列的值与每行中两个其他列的连接.

before update
 A    B    c 
-------------
1     4
2     5
3     6

after update
 A    B    c 
-------------
1     4    1_4
2     5    2_5
3     6    3_6

我怎样才能在oracle中这样做?

首先,您违反了规范化规则.你必须重新考虑设计.如果您有表列中的值,那么要获得计算值,您只需要一个select语句来获取您想要的结果.存储计算值通常是一个坏主意,并被认为是一个糟糕的设计.

无论如何,

因为你是11g,如果你真的想要一个计算列,那么我建议使用VIRTUAL COLUMN而不是手动更新列. UPDATE语句涉及很多开销.使用虚拟列可以减少大量开销.此外,您将完全摆脱手动工作和那些代码行来进行更新. Oracle为您完成工作.

当然,您将在虚拟列子句中使用相同的连接条件.

就像是,

Column_c varchar2(50)GENERATED ALWAYS AS(column_a ||’_’|| column_b)VIRTUAL

注意:使用时有一些限制.因此,请在实施之前参考文档.但是,对于OP提供的简单用例,虚拟列是直接拟合的.

更新我做了一个小测试.几乎没有观察到.请阅读此 question ,以便更好地了解如何实施我的建议.

翻译自:https://stackoverflow.com/questions/28542578/how-to-update-a-column-with-concatenate-of-two-other-column-in-a-same-table


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。

亚马逊跨境电商运营宝典

亚马逊跨境电商运营宝典

老魏 / 电子工业出版社 / 2018-6 / 69

《亚马逊跨境电商运营宝典》详细讲解亚马逊的平台知识和运营技巧,内容围绕亚马逊卖家的日常工作,系统讲解亚马逊账号注册、后台操作、选品、产品发布、Listing 优化、站内广告、FBA 发货、VAT 税务等内容,并且通过大量的案例分析,用生动翔实的案例为读者传递运营中必备的操作技巧和运营方法。 《亚马逊跨境电商运营宝典》内容针对性强,讲解的知识、技巧和方法都充分考虑到易学、易懂、易操作、易落地执......一起来看看 《亚马逊跨境电商运营宝典》 这本书的介绍吧!

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具