简体   繁体   English

根据同一张表的其他值插入值

[英]Insert value based on other value of same table

lets assume I have a table like this:让我们假设我有一个这样的表:

Column A A列 Column B B列
120 120
90 90后
60 60
150 150

Now I want to fill the empty column B with string values somehow like this:现在我想像这样用字符串值填充空列 B:

if column A > 100: insert "high number" else: insert "low number"如果 A 列 > 100:插入“高数” 否则:插入“低数”

So that: 120 -> high number, 90 -> low number, etc...这样:120 -> 高数,90 -> 低数,等等......

How would I do that in Oracle SQL?我将如何在 Oracle SQL 中执行此操作?

Thanks in advance:)提前致谢:)

You can use an UPDATE statement with a CASE expression:您可以使用带有CASE表达式的UPDATE语句:

UPDATE table_name
SET column_b = CASE
               WHEN column_a > 100
               THEN 'high number'
               ELSE 'low number'
               END;

However, it would be better, to make column_b a virtual column:但是,将column_b设为虚拟列会更好:

CREATE TABLE table_name (
  column_a NUMBER,
  column_b VARCHAR2(11) 
           GENERATED ALWAYS AS (
             CASE 
             WHEN column_a > 100
             THEN 'high number'
             ELSE 'low number'
             END
           )
);

Then if the column_a value changes the column_b value will stay in sync with it.然后,如果column_a值更改, column_b值将与其保持同步。

fiddle小提琴

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM