2016-06-10 136 views
1

任何人都可以幫我解決這個錯誤嗎?列是布爾類型,但表達式是文本類型提示:您需要重寫或轉換表達式

Update table 
SET 
tentative = case src.tentative 
WHEN 1 THEN 't' ELSE 'f' END 
FROM table 
+1

你有什麼具體問題? – Hamms

+0

我在嘗試更新一列。暫定是布爾類型,但在源端是varchar。在投射時我遇到了這個問題。 – Ramesh

+0

你似乎試圖從一個布爾型轉換成一個角色......你是否想要做'當'那麼1其他0結束'? – Hamms

回答

3

您的列tentativeBOOLEAN類型;但是,您正嘗試使用TEXT類型的值更新它。

所有你需要做的就是使用BOOLEAN在您的更新,像這樣:

UPDATE table 
SET tentative = CASE src.tentative WHEN 1 THEN TRUE ELSE FALSE END 
FROM src_table src; 

或者,但也許不太明顯,你可以這樣做:

UPDATE table 
SET tentative = (src.tentative = 1) 
FROM src_table src; 
+0

't'和'f'是TRUE和FALSE的有效文字 –

相關問題