我正在嘗試根據 3 個條件更新表中的單個列。我嘗試使用 CASE 陳述句,我可以得到 2 個條件,但不能得到第 3 個條件。以下是條件的標準:
- 如果 field transpond = 0,則 field transpondertype應為“N”
- 如果 field transpond = 1,則 field transpondertype應為“A”
- 如果欄位modesquip = 1,則欄位轉發器型別應為“S”
這是我想出的 SQL:
UPDATE "myDatabase".myTable
SET transpondertype=(CASE
WHEN transpond=0 THEN 'N'
WHEN transpond=1 THEN 'A'
WHEN transpond=1 AND modesequip=1 THEN 'S'
END);
該transpondertype場獲取與前兩個條件適當的更新,這是最后WHEN陳述句,從來沒有正確更新(它不會改變在所有的資料)。我WHEN modesequip=1 THEN 'S'最初嘗試過,但這也不起作用。
如何獲取更新CASE 陳述句所有 3 個部分的transpondertype欄位的陳述句?
uj5u.com熱心網友回復:
試試這個
UPDATE "myDatabase".myTable
SET transpondertype=(CASE
WHEN transpond=0 THEN 'N'
WHEN transpond=1 THEN
CASE WHEN modesequip=1
THEN 'S'
ELSE 'A'
END
END);
uj5u.com熱心網友回復:
當 transpond=1 和 modeequip!=1 時,'A'
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/383302.html
標籤:PostgreSQL的 案件
