sql - 在 SQL 中复制 VBA 解决方案
问题描述
我有一个 SQL 查询,它为我提供了“输出之前”图片中的输出。
第 5 列,如果本质上对第 1 列countif
中的项目执行第 1 列,类似于 Excel。
我想添加一些代码/子查询,以便输出变得像“输出之后”图片。
有谁知道我该怎么做?
我可以用 VBA 在 excel 中做到这一点,但我无法理解如何在 SQL 中做到这一点。
解决方案
您希望将多行连接成一个值。您的选项取决于您的 SQL Server 版本。在较旧的版本(我认为是 2005+)中,您必须使用痛苦的 XML 程序。在你的服务器上运行它,你会看到它是如何工作的,但我会留给你来计算你的数据查询:
SELECT STUFF(
(SELECT ', <' + name + '>'
FROM sys.databases
WHERE database_id > 4
ORDER BY name
FOR XML PATH('') ,
ROOT('MyString') ,
TYPE
).value('/MyString[1]', 'varchar(max)'), 1, 2, '') AS namelist;
从 SQL 2017 开始,您可以使用 STRING_AGG 函数,在此处进行了说明。
推荐阅读
- python - 尝试使用网络摄像头 python opencv 捕获视频时出现 gstreamer 严重错误
- generics - F# 内联函数:实例成员约束失败
- php - 如何查询所有多租户数据库?
- ffmpeg - FFMPEG 分割视频无法正常工作
- php - 使用 isset 查找变量为真
- webhooks - 如何在Dialogflow中为用户的下一个对话保留代理响应的上下文
- r - R - 在循环中按属性缓冲 SpatialPolygons
- java - 如何在 Java 中使用带有字节数组的 lambda 表达式?
- bash - 如何在bash中打印2个数组值
- python - COLOR_RGB2GRAY 提供非灰度图像(可能是 jupyter-notebook 的问题)