python - 如何将值从列复制到postgresql中不存在的列
问题描述
我有一张这样的桌子:
我想将第一列中的值复制到不存在的“数量”列中,如果它们具有不同的数据类型,我该怎么做?
我最初想要的是当第一列的值为 0 时,列 qty 应该为空白或空,而不是 [null],我通过这样的代码实现了这一点:
SELECT round(od_qty),
CASE when round(od_qty) = 0 Then ''
END qty,
FROM vodetl
现在我的问题是其他不为 0 的值怎么办,我如何将这些值复制到列 qty?我试过这个:
SELECT round(od_qty),
CASE when round(od_qty) = 0 Then ''
ELSE round(od_qty)
END qty,
FROM vodetl
但由于它显示的数字数据类型
ERROR: invalid input syntax for type numeric: ""
LINE 2: CASE when od_item = 'C' and round(od_price,2) = 0.00 Then ''
我如何在不更改第一列的数据类型的情况下做到这一点?
解决方案
表达式的所有分支CASE
必须具有相同的类型。因此,如果要将空字符串显示为其中一个值,则另一个数值也应转换为文本。考虑:
SELECT ROUND(od_qty),
CASE WHEN ROUND(od_qty) = 0 THEN '' ELSE ROUND(od_qty)::text END qty,
FROM vodetl;
推荐阅读
- android - 如何使用异步任务来控制视图寻呼机
- python - 使用 python 正则表达式从字符串中提取数据的更好方法
- python - 使用 Python 连接到 Redis 集群(在 Docker 中)
- java - 如何在 Spring Boot 中使用一个代码库维护多客户端自定义更改?
- python - PySpark:TypeError:“str”对象在数据帧操作中不可调用
- regex - apache 条件正则表达式无法匹配
- pkcs#11 - 如果派生密钥 CKA_DERIVE=0,C_DeriveKey 的正确错误代码是什么
- angular - 使用@ionic-native/clipboard 检查剪贴板内容是否为空
- android - SNS Mobile 推送通知非常混乱
- android - Kotlin 中未解决的引用