sql - TSQL 如果超过一个,则合并查询结果
问题描述
SQL Server 2016 - 我有一个查询,它产生下面的结果,但想要组合块子块的任何多个值,如果只有一个值显示该值。
SELECT
BLOCKS.[BLOCK-REF] AS [BLOCK-SUBB-REF]
, BLOCKS.[PLACE-REF]
, tenure.[ESTATE-CODE]
FROM [SQLViewsPro2EOD].[dbo].[IH-LOCATION] AS BLOCKS INNER JOIN
[SQLViewsPro2EOD].[dbo].[IH-LOCATION] AS SUBB ON BLOCKS.[BLOCK-REF] = SUBB.[PLACE-REF] inner join
[SQLViewsPro2EOD].[dbo].[IH_ESTATE] tenure on tenure.[ESTATE-CODE] = blocks.[ESTATE-CODE]
AND SUBB.[LOCATION-TYPE] IN ('BLOCK', 'SUBBLOCK', 'CBLOCK', 'HOSTEL', 'SCHEME') and SUBB.[BLOCK-REF] <> ''
and BLOCKS.[LOCATION-TYPE] in ('FLAT', 'BEDSIT', 'BUNG', 'DUPLEX', 'ENDTER', 'GFLAT', 'GFLATOG', 'HOSTEL', 'HOUSE', 'MAISON', 'SEMDET', 'ROOM')
WHERE
(BLOCKS.[LOCATION-STS] <> 'D')
|BLOCK-SUBB-REF | PLACE-REF | ESTATE-CODE|
|103 |1331 |PSLH |
|103 |1332 |GNSOC |
|103 |1333 |GNSOC |
|103 |1334 |GNSOC |
|104 |1335 |PSLH |
期望的输出
|BLOCK-SUBB-REF |Result
|103 | Mixed Results
|104 | PSLH
谢谢 - 任何帮助表示赞赏
解决方案
似乎您可以只使用CASE
表达式并检查MIN
andMAX
值是否相同:
SELECT BLOCKS.[BLOCK-REF] AS [BLOCK-SUBB-REF],
CASE WHEN MIN(tenure.[ESTATE-CODE]) = MAX(tenure.[ESTATE-CODE]) THEN MAX(tenure.[ESTATE-CODE]) ELSE 'Mixed Results' END
FROM [SQLViewsPro2EOD].[dbo].[IH-LOCATION] BLOCKS
INNER JOIN [SQLViewsPro2EOD].[dbo].[IH-LOCATION] SUBB ON BLOCKS.[BLOCK-REF] = SUBB.[PLACE-REF]
INNER JOIN [SQLViewsPro2EOD].[dbo].[IH_ESTATE] tenure ON tenure.[ESTATE-CODE] = BLOCKS.[ESTATE-CODE]
AND SUBB.[LOCATION-TYPE] IN ('BLOCK', 'SUBBLOCK', 'CBLOCK', 'HOSTEL', 'SCHEME')
AND SUBB.[BLOCK-REF] <> ''
AND BLOCKS.[LOCATION-TYPE] IN ('FLAT', 'BEDSIT', 'BUNG', 'DUPLEX', 'ENDTER', 'GFLAT', 'GFLATOG', 'HOSTEL', 'HOUSE', 'MAISON', 'SEMDET', 'ROOM')
WHERE BLOCKS.[LOCATION-STS] <> 'D'
GROUP BY BLOCKS.[BLOCK-REF];
推荐阅读
- visual-studio-code - 如何在不覆盖原始功能的情况下向 VSCode 中的键绑定添加附加功能?
- r - 如何根据不同的分组在 R 中制作和组织均值和 sds 表
- javascript - 延迟更新计算值,直到设置了某些所需状态
- html - 带有弹性框的 HTML 模板
- python - 将其从 DataFram 转换为 List 后 Col 丢失
- azure-functions - 解决方案中的多个 Azure 功能项目
- excel - 将 excel 工作表转换为 .txt,在 Excel VBA 中复制的数字应不带引号“”
- javascript - nodemon 应用程序崩溃 - 在从服务器获得响应后开始错误之前等待文件更改
- javascript - 使用 html 服务器运行 Node.js 应用程序
- r - 在 Shiny 的隐藏部分取消暂停元素