是否有一個 2 串列的示例,(x, y - INTEGER),它給出了說明:
UPDATE tab SET x = y WHERE x != y;
UPDATE tab SET x = y WHERE 1 = 1 OR (NULL IS NOT NULL);
會顯示不同的結果嗎?
uj5u.com熱心網友回復:
當然:
CREATE TABLE tab (x integer, y integer);
INSERT INTO tab VALUES (NULL, 1);
/* doesn't update a single row */
UPDATE tab SET x = y WHERE x != y;
TABLE tab;
TABLE tab;
x │ y
════════╪═══
(null) │ 1
(1 row)
/* updates a row */
UPDATE tab SET x = y WHERE 1 = 1 OR (NULL IS NOT NULL);
TABLE tab;
x │ y
═══╪═══
1 │ 1
(1 row)
uj5u.com熱心網友回復:
在第一條陳述句中,x != y僅當x且y不是nulls時才計算為真。因此,如果 (x,y), 是值和 a 的任意組合null,x則將保持不變。
在第二個陳述句中,where條件評估為真,并且可以完全省略 - 所有x值都將使用其對應的y值進行更新。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/346155.html
標籤:sql PostgreSQL sql更新
上一篇:REGEXP_REPLACE字串以雪花中的特定子字串開頭和結尾
下一篇:SQL全文搜索不包含精確
