[英]Insert value based on other value of same table
lets assume I have a table like this:让我们假设我有一个这样的表:
Column A ![]() |
Column B ![]() |
---|---|
120 ![]() |
|
90 ![]() |
|
60 ![]() |
|
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
值将与其保持同步。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.