sql - SQL如何在两个不同的列上带来两个不同条件的两个结果
问题描述
我有这个 SQL 查询
SELECT N2 as DOORS, N2 as WINDOWS
FROM DATABASE.dbo.DISTINTAB
WHERE numero=45
AND CODEITEM='D' OR CODEITEM='W'
现在它给我带来了 2 列(DOORS,WINDOWS),结果相同。
我真正想要的是只在 DOORS 列上引入代码为“D”的项目,在 WINDOWS 列上只引入代码为“W”的项目
我怎样才能做到这一点?
解决方案
你似乎想要聚合:
SELECT numero,
MAX(CASE WHEN CODEITEM = 'D' THEN N2 END) AS DOORS,
MAX(CASE WHEN CODEITEM = 'W' THEN N2 END) AS WINDOWS
FROM DATABASE.dbo.DISTINTAB
WHERE numero = 45 AND CODEITEM IN ('D', 'W')
GROUP BY numero;
推荐阅读
- javascript - v-leave-active 动画工作,但 v-enter-active 动画不工作
- r - 在 Shiny 中使用 fileInput、响应式函数和命名空间
- java - org.xml.sax 包可以从多个模块访问: - 需要保持 maven 依赖
- c++ - 将 TCHAR 转换为 wstring
- string - 如何从字符串中获取变量名
- python - 我们如何使用 numpy.npv 按项目分组并计算每组的 NPV?
- eclipse - Eclipse 中的 Tomcat 不再启动 servlet:迁移 Jersey 2.32 -> 3.0.1
- jira - 使用 JIRA 的项目键和字段名称创建问题
- python - 有没有办法为 pandas 列中的每个唯一值创建一个数据框,然后将每个值写入同一个 Excel 文件中的不同工作表?
- python - 计算同一数据帧中多个不同出现的总数