我有一個表A和包含值如何將結果存儲在表中?
NAME AGE
Loga 18
Anitha 20
Saranya 13
我測試表中的值,如果使用的情況下聲明的情況下條件時,AGE> = 18然後「主要」 別的「次要」然後將結果是像
NAME AGE CASE
Loga 18 'major'
Anitha 20 'major'
Saranya 13 'minor'
我想在我的A表中添加CASE和永久結果的值。它有可能嗎?
我有一個表A和包含值如何將結果存儲在表中?
NAME AGE
Loga 18
Anitha 20
Saranya 13
我測試表中的值,如果使用的情況下聲明的情況下條件時,AGE> = 18然後「主要」 別的「次要」然後將結果是像
NAME AGE CASE
Loga 18 'major'
Anitha 20 'major'
Saranya 13 'minor'
我想在我的A表中添加CASE和永久結果的值。它有可能嗎?
alter table a add column new_column_name text;
update a
set new_column_name = case when age >= 18 then 'major' else 'minor' end
您需要先使用ALTER TABLE ... ADD COLUMN將該列添加爲NULLable,然後爲所有現有值填充該列;你可能會然後需要將其設置非空的:
ALTER TABLE a ADD COLUMN new_column text NULL;
UPDATE a SET new_column = CASE WHEN age >= 18 THEN 'major' ELSE 'minor' END;
ALTER TABLE a ALTER COLUMN new_column SET NOT NULL;
這將填充初始值,並使其強制填充新值的列,但不會反映任何變化(這樣你就可以將age
更新爲18以上,但將標籤保留爲'minor'
)。
如果age
和新列之間的關係必須始終堅持,你可能要考慮更復雜的東西:
這個更新語句不必要的複雜 - 你只想'new_column_name = case when age> = 18 then'major'else'minor'end' – IMSoP 2013-05-08 12:03:08
@IMSoP是的,更正了,謝謝。 – 2013-05-08 12:09:03