0
基本上我有這種情況:如何在使用SQL滿足特殊條件時插入兩行?
對於表中的每一行,我必須取其中一列的值,並將其插入到一個新表中。
這是一個簡單的查詢:
SELECT val
INTO NEW_TABLE
FROM SOURCE_TABLE;
不過,我有一個問題。在某些情況下,我想爲相同條目插入兩行。
我可以實現使用以下三種查詢時:
SELECT 'val'
INTO NEW_TABLE
FROM SOURCE_TABLE WHERE NOT SPECIAL_CONDITION;
SELECT 'special_val1'
INTO NEW_TABLE
FROM SOURCE_TABLE WHERE SPECIAL_CONDITION;
SELECT 'special_val2'
INTO NEW_TABLE
FROM SOURCE_TABLE WHERE SPECIAL_CONDITION;
但有沒有辦法做到這一點使用一個單一的一個?
我想到了這樣的事情(這可能無法工作,因爲我沒有測試過):
INSERT INTO NEW_TABLE
(
(SELECT 'val' FROM SOURCE_TABLE WHERE NOT CONDITION)
UNION
(SELECT 'val1' FROM SOURCE_TABLE WHERE CONDITION)
UNION
(SELECT 'val2' FROM SOURCE_TABLE WHERE CONDITION)
)
但最終冗長是確定的,如果它最終被更有效率。 那麼有沒有一種更有效的方法來做到這一點與單個查詢?
。 。你真的打算使用「psql」標籤嗎? –