java - 使用SQL存储过程我们可以得到以下输出吗?或者在代码本身中处理它?

标签 java sql stored-procedures jdbc sql-server-2012

enter image description here

enter image description here

图1是当前数据, 图2是我需要存储到新表中的数据。事情是我想组合所有相同的 ITEM_NO 并将其作为逗号分隔值并插入到新表中。

最佳答案

虽然我认为这样存储数据根本不是一个好主意(请参阅其他人在评论中所说的内容),但可以通过以下方式实现:

SELECT REFERENCE_NO, 
       ITEM_NO, 
       ROLES = STUFF((SELECT N', ' + ENTITY_ROLE 
                      FROM dbo.MyTable AS p2
                      WHERE p2.ITEM_NO = p.ITEM_NO 
                      ORDER BY ENTITY_ROLE
                      FOR XML PATH(N'')), 1, 2, N'')
FROM dbo.MyTable AS p
GROUP BY REFERENCE_NO, ITEM_NO
ORDER BY ITEM_NO;

实际演示:SQL Fiddle

关于java - 使用SQL存储过程我们可以得到以下输出吗?或者在代码本身中处理它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52116003/

相关文章:

java - 如何使用灰度像素值从 Bitmap 创建 ByteBuffer?

java - 从 Java 中的另一个类访问 UUID

mysql - SQL 查询根据最大共同结果对结果进行排序

java - MySQL - Java 和 MySQL 过程和函数的集成问题

sql - 我可以检查更新的 SET 中的变量是否为 NULL 吗?

JavaFX - 拦截来自 "child"可平移 ScrollPane 的拖动事件并重定向到 "parent"ScrollPane

java 搜索字符串中的特定单词

SQL Select 语法解决方法

MySQL LEFT JOIN 仅返回右表上带有 where 条件的一行

c# - SQL 服务器 2005 : dynamically adding parameters to a stored procedure