how to convert column values into comma seperated row vlaues(如何将列值转换为逗号分隔的行值)
本文介绍了如何将列值转换为逗号分隔的行值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一张表,其值为
FKTABLE_NAME FKCOLUMN_NAME PKCOLUMN_NAME
table1 column1 column1
table1 column2 column2
table2 column1 column1
table2 column2 column2
我需要如何将其转换为
FKTABLE_NAME FKCOLUMN_NAME PKCOLUMN_NAME
tablel1 column1,column2 column1,column2
table12 column1,column2 column1,column2
基本上,我试图按表名获取逗号分隔的列组.
Basically, I am trying to get the comma seperated columns group by the table name.
谢谢
推荐答案
这是对任何数据库的有效查询
Here's a working query on any db
select distinct table_name,
stuff((select ','+data_type
from information_schema.columns b
where b.table_name=a.table_name
for xml path(''),type).value('.[1]','nvarchar(max)'),1,1,'') AS data_types,
stuff((select ','+column_name
from information_schema.columns b
where b.table_name=a.table_name
for xml path(''),type).value('.[1]','nvarchar(max)'),1,1,'') AS column_names
from information_schema.columns a
这是您的查询
select distinct FKTABLE_NAME,
stuff((select ','+FKCOLUMN_NAME
from tbl b
where b.FKTABLE_NAME=a.FKTABLE_NAME
for xml path(''),type).value('.[1]','nvarchar(max)'),1,1,'') AS FKCOLUMN_NAMES,
stuff((select ','+PKCOLUMN_NAME
from tbl b
where b.FKTABLE_NAME=a.FKTABLE_NAME
for xml path(''),type).value('.[1]','nvarchar(max)'),1,1,'') AS PKCOLUMN_NAMES
from tbl a
这篇关于如何将列值转换为逗号分隔的行值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:如何将列值转换为逗号分隔的行值
基础教程推荐
猜你喜欢
- SQL Server:只有 GROUP BY 中的最后一个条目 2021-01-01
- ERROR 2006 (HY000): MySQL 服务器已经消失 2021-01-01
- Sql Server 字符串到日期的转换 2021-01-01
- 将数据从 MS SQL 迁移到 PostgreSQL? 2022-01-01
- SQL Server 中单行 MERGE/upsert 的语法 2021-01-01
- SQL Server 2016更改对象所有者 2022-01-01
- 在 VB.NET 中更新 SQL Server DateTime 列 2021-01-01
- 使用pyodbc“不安全"的Python多处理和数据库访问? 2022-01-01
- 无法在 ubuntu 中启动 mysql 服务器 2021-01-01
- 如何在 SQL Server 的嵌套过程中处理事务? 2021-01-01