1
任何人都可以帮我解决这个错误吗?列是布尔类型,但表达式是文本类型提示:您需要重写或转换表达式
Update table
SET
tentative = case src.tentative
WHEN 1 THEN 't' ELSE 'f' END
FROM table
任何人都可以帮我解决这个错误吗?列是布尔类型,但表达式是文本类型提示:您需要重写或转换表达式
Update table
SET
tentative = case src.tentative
WHEN 1 THEN 't' ELSE 'f' END
FROM table
您的列tentative
是BOOLEAN
类型;但是,您正尝试使用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;
't'和'f'是TRUE和FALSE的有效文字 –
你有什么具体问题? – Hamms
我在尝试更新一列。暂定是布尔类型,但在源端是varchar。在投射时我遇到了这个问题。 – Ramesh
你似乎试图从一个布尔型转换成一个角色......你是否想要做'当'那么1其他0结束'? – Hamms