You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DBeaver导入工具:将CSV中YES转为PostgreSQL布尔值的转换表达式

解决CSV导入PostgreSQL时"YES"转布尔值的问题

根据你使用的导入工具,分两种场景给出可行的转换表达式:

1. 使用psql的COPY命令导入

直接在COPY语句里通过比较运算或CASE表达式完成转换:

基础写法(仅将"YES"转为true,其他值转为false)

COPY target_table (other_col1, other_col2, boolean_column)
FROM '/path/to/your/data.csv'
DELIMITER ','
CSV HEADER
(boolean_column = (boolean_column = 'YES'));

严谨写法(区分"YES"/"NO",其他值设为NULL)

COPY target_table (other_col1, other_col2, boolean_column)
FROM '/path/to/your/data.csv'
DELIMITER ','
CSV HEADER
(boolean_column = CASE 
    WHEN boolean_column = 'YES' THEN TRUE
    WHEN boolean_column = 'NO' THEN FALSE
    ELSE NULL 
END);

2. 使用pgAdmin等可视化导入工具

在导入向导的「数据转换」环节,不要用双等号==,换成标准SQL的单等号=即可:

"column_in_file" = 'YES'

如果需要兼容"NO"和空值,可使用CASE表达式覆盖更多场景:

CASE WHEN "column_in_file" = 'YES' THEN TRUE WHEN "column_in_file" = 'NO' THEN FALSE ELSE NULL END

为什么你之前的表达式无效?

PostgreSQL虽支持==作为比较运算符,但部分导入工具的表达式解析器仅认可标准SQL的单等号=;另外如果列名包含空格、特殊字符,需要用双引号包裹列名才能正确识别。

内容的提问来源于stack exchange,提问作者XGrzesX

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 20:32:40