sql - 当所有值都为 NULL 时不返回行 - SQL
问题描述
我正在使用 redshift,但我怀疑这对许多其他形式的 SQL 很有价值。我也是 SQL 的新手,希望对我的查询提出任何建议,除了专门针对我的问题的建议;请保持建设性。
问题:如何避免返回结果的所有行都为 NULL 的行?
这是我的查询:
SELECT
CASE WHEN events.event_id IN
(SELECT DISTINCT event_id FROM strings_ref WHERE string_id = 123)
THEN event_id END AS 123,
CASE WHEN events.event_id IN
(SELECT DISTINCT event_id FROM strings_ref WHERE string_id = 456)
THEN event_id END AS 456
FROM events
还有很多很多其他string_id
的,这个查询只返回了1000个连续的NULL。编辑:我已经证实有结果。
注意:我已经接受了与我的问题最相关的答案,但@gordon-linoff 的答案更为笼统。
解决方案
这是一种方法:
SELECT E.*, SR1.EVENT_ID, SR2.EVENT_ID
FROM Events E
LEFT OUTER JOIN strings_ref sr1 on E.EVENT_ID=SR1.EVENT_ID AND sr1.string_id = 123
LEFT OUTER JOIN strings_ref sr2 on E.EVENT_ID=SR2.EVENT_ID AND sr2.string_id = 456
WHERE SR1.EVENT_ID IS NOT NULL OR SR2.EVENT_ID IS NOT NULL
多次加入 strings_ref
推荐阅读
- microsoft-graph-api - /teams/allMessages 创建订阅 API 的问题
- mongodb - mongo shell 查询不适用于嵌套文档
- stripe-payments - 如何检索已连接帐户的 Stripe 会话 ID?
- flutter - 编写此飞镖迭代并返回列表的更好方法是什么
- c++ - 为什么字符数组不给出无符号结果
- c++ - 如何将 dll 库链接到我的应用程序?
- javascript - git 中的路径错误,无法在...处创建目录 无效的参数
- python - 如何将表格值从 Web 表单获取到 post 方法 python 烧瓶中?
- c# - 我在 C# 中的表中插入数据时遇到问题
- scikit-learn - 有没有办法在sklearn中导入train_test_spit?