我想将值从 varchar 字段“复制”到 bool 字段。在 varchar 字段中,我有"is"和“否”之类的值。当我想输入我的 bool 字段时,我收到一条错误消息,提示我需要进行类型转换。我想我需要一个类型转换,但我不知道怎么写。
一个理论例子
INSERT INTO mytable (booleanfield)
VALUES (
SELECT CASE
WHEN varcharfield like 'yes' THEN 'true'
WHEN varcharfield like 'no' THEN 'false'
END
FROM mytable);
最佳答案
你可以使用
将字符串转换为 bool 值
比如
INSERT INTO mytable2(booleanfield,varcharfield)
SELECT varcharfield::boolean,varcharfield FROM mytable;
mytable2 的创建者
CREATE TABLE mytable2 AS SELECT * FROM mytable WHERE 1=0
取决于问题中的 insert
逻辑。或者直接更喜欢使用 update
作为:
UPDATE mytable
SET booleanfield=varcharfield::boolean;
being 'Yes' or 'yes' or 'y' or 'Y' is converted to
true
, 'No' or 'no' or 'n' or 'N' is converted tofalse
.
关于sql - 将 varchar 转换为 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57266490/