sql-server-2008 - 如何将多行连接成一个
问题描述
使用 SQL 2008 R2 我有两个表,想创建一个表,如:
输入表 输入表 1
我尝试过使用 stuff 功能
SELECT o.DEPT_ID,o.CLIENT_ID,
code,
(STUFF((SELECT CAST(', ' + CODE AS VARCHAR(MAX))
FROM ORDERS
WHERE (o.FUNDER_ID = f.FUNDER_ID)
FOR XML PATH ('')), 1, 2, '')) AS funder_code
FROM FUNDERS f
join ORDERS o on o.FUNDER_ID=f.FUNDER_ID
where o.DEPT_ID=111 and CLIENT_ID='B001'
而且我没有得到输出。
解决方案
首先,您所需的输出似乎将第二个输入表中的“名称”列作为逗号分隔的列表,但您的代码暗示您希望将“代码”列连接起来。此解决方案连接“名称”列。
其次,查看您的输入表,您不能直接使用join ORDERS o on o.FUNDER_ID=f.FUNDER_ID
,因为'B0000000019'不等于'F19'。但是,一旦您操作了这些列以便可以连接它们,请尝试以下操作:
SELECT DISTINCT o.dept_id, o.client_id
,(STUFF((SELECT distinct CAST(', ' + name AS VARCHAR(MAX))
FROM FUNDERS f
JOIN ORDERS o2 ON o2.funder_id = f.funder_id
FOR XML PATH ('')), 1, 2, '')) AS funder_code
FROM ORDERS o
推荐阅读
- c# - 字体“?” 找不到 System.Windows.Forms.TextBox()
- oracle-apex - 使用项目中的新值到我的 sql 语句而不将此值保存到数据库
- javascript - 窗口关闭不适用于反应 js 应用程序,如何关闭浏览器 onclick 后退按钮上的当前选项卡?
- terminal - 如何让键绑定在 gnuplot 哑终端中工作?
- sql - 从 Oracle Sql 数据库列中删除换行符
- xamarin - Xamarin 表单的混淆
- python-3.x - 数据框在所有行的特定字符串之前拆分
- javascript - 无法从另一个脚本标签获取来自 bundle js 的代码
- python - 处理具有多个 Python 脚本且要求不同的 Python 项目文件夹的最佳方法是什么?
- java - 当屏幕触摸发生时停止我的计时器