sql - 将 varchar 转换为布尔值
问题描述
我想将值从 varchar 字段“复制”到布尔字段。在 varchar 字段中,我有“yes”和“no”之类的值。当我想提供我的布尔字段时,我有一条错误消息表明我需要进行类型转换。我想我需要一个演员表,但我不知道怎么写。
一个理论例子
INSERT INTO mytable (booleanfield)
VALUES (
SELECT CASE
WHEN varcharfield like 'yes' THEN 'true'
WHEN varcharfield like 'no' THEN 'false'
END
FROM mytable);
解决方案
您可以使用
将您的字符串转换为布尔值
如
INSERT INTO mytable2(booleanfield,varcharfield)
SELECT varcharfield::boolean,varcharfield FROM mytable;
mytable2 由
CREATE TABLE mytable2 AS SELECT * FROM mytable WHERE 1=0
取决于问题中的insert
逻辑。或者直接更喜欢使用update
as :
UPDATE mytable
SET booleanfield=varcharfield::boolean;
是 'Yes' 或 'yes' 或 'y' 或 'Y' 转换为
true
, 'No' 或 'no' 或 'n' 或 'N' 转换为false
.
推荐阅读
- java - 如何对 indexedEmbedded 中的字段进行排序
- javascript - 将其推入数组 onClick
- swift - 为 URL 类型实现 KeyedDecodingContainerProtocol
- firebase - 事务仅适用于同时调用一次
- php - Laravel 路由到子域
- prolog - 生成所有长度为 N 的单词并在 Prolog 中与它们形成一个列表
- kubernetes - kubectl:描述与获取 -o
- python - 无服务器:python3.7 未找到!尝试 pythonBin 选项
- vue.js - 如何在 V-Card 中显示相同大小的图像
- html - 如何设置静态网站的根路径