sql - 相当于 SELECT 0 的东西,但对于字符串。它是 SELECT '' 吗?
问题描述
什么相当于:
SELECT 0 as foo;
但对于字符串,是不是:
SELECT '' as bar;
?
有关更多上下文,这是用于UNION ALL
查询
[编辑]
SELECT NULL 是我一直在寻找的。在我正在做的顶部查询中:SELECT COUNT(DISTINCT(bar))
,但空字符串算作不同的字符,NULL
没有。
解决方案
如果您想要字符串形式的“等价物” SELECT 0
,那么它将是SELECT '0'::int
.
如果您正在寻找一个非空字符串来表示“无数据”,SELECT '' AS something
就足够了
当您调用UNION ALL
时,期望列将对齐,并且数据集将沿其列顺序连接。既然你想要UNION ALL
一个integer
and char
,你会得到一个错误:
edb=# select 0 as something union all select '' as something;
ERROR: invalid input syntax for type integer: ""
LINE 1: select 0 as something union all select '' as something;
^
因此,为了UNION ALL
,您需要将您的转换0
为char
:
edb=# select 0::char as something union all select '' as something;
something
-----------
0
(2 rows)
警告
我不确定这是否真的是你想要做的,但如果你正在寻找UNION ALL
这两组,那就是你要做的。但是,这有可能会打开一罐蠕虫 -''
将被视为等同于0
?你将如何处理非零值?你还会把那些integer
s 转换成字符串吗?我认为您需要考虑这些影响并尝试找到一种方法来清理您的数据。
一般来说,NULL
如果您的设计允许,使用值可能会更好
推荐阅读
- c++ - C++模板类静态成员初始化
- c# - 在具有变化结构的数据库上运行 linq-to-sql 查询
- python-3.x - 无法抓取所有数据
- javascript - 我在一个组件中同时使用两个按钮,当我单击它而不是另一个按钮时,我只希望一个按钮工作
- elasticsearch - Elasticsearch如何扩展分析器?
- python-3.x - 使用 Python 编辑和覆盖文本文件
- react-native - 如何在 React Native 中使用或实现多色进度圈?
- javascript - 为已经过去的天数添加课程
- ios - 如何获取当前登录用户关注的用户帖子
- unity3d - unity 2019 中的 Unity3d 标准曲面粒子流着色器错误