我有一個領域一個SQL表(9.3版本的PostgreSQL)(遊覽字符改變,tourtime INT)......我想寫像case when tour = 'A' then tourtime = 2 when tour = 'B' then tourtime = 3 else 0
等查詢..Postgres的數據類型整數和布爾
但是我得到錯誤
CASE類型的整數和布爾不能匹配
這是爲什麼?
我有一個領域一個SQL表(9.3版本的PostgreSQL)(遊覽字符改變,tourtime INT)......我想寫像case when tour = 'A' then tourtime = 2 when tour = 'B' then tourtime = 3 else 0
等查詢..Postgres的數據類型整數和布爾
但是我得到錯誤
CASE類型的整數和布爾不能匹配
這是爲什麼?
你的情況,你有樹枝:
case when tour = 'A'
then tourtime = 2
when tour = 'B'
then tourtime = 3
else 0
end
在前兩個,你有布爾表達式((tourtime = 2)
和(tourtime = 3)
),根據列tourtime
的值是true
或false
。在第三個中,您有一個整數表達式(0
)。
當系統試圖推斷結果的類型時,它匹配三種類型,發現它們是不同的。
所以你應該有所有的整數表達式或布爾表達式,這取決於你想要的結果。
將布爾值轉換爲整數? tourtime :: int4 – sibert