You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在SQL Server Management Studio中将单行查询结果多行显示?

嘿,我完全懂你面对那种列数超多的单行数据时,看网格挤得眼睛都花的感觉!在SSMS里其实有几个实用的办法能帮你把数据转成清爽的多行显示,我给你整理了两种最常用的:

在SSMS中将单行多列数据转为多行显示的方法

方法一:用SSMS自带的「查看详细信息」功能(最快最省心)

  • 先执行你的单行查询,比如 SELECT * FROM YourTableName WHERE PrimaryKey = '目标主键值'
  • 在查询结果的网格里,随便点击该行的任意一个单元格
  • 按下快捷键 Ctrl+R,或者右键选择「查看详细信息」
  • 这时候会弹出一个独立窗口,把每一列的名称和对应的值拆分成一行一行显示,超适合阅读大列数的数据!

方法二:用动态SQL生成键值对结果(适合需要导出或自定义显示的场景)

如果需要把结果直接以多行键值对的形式输出(方便复制或保存),可以写一段动态SQL自动处理所有列,不用手动逐个列名:

DECLARE @TableName NVARCHAR(128) = '你的表名';
DECLARE @PrimaryKeyCol NVARCHAR(128) = '主键列名';
DECLARE @TargetValue NVARCHAR(128) = '要查询的主键值';

DECLARE @DynamicSQL NVARCHAR(MAX);

SELECT @DynamicSQL = STRING_AGG(
    CONCAT(N'SELECT ''', COLUMN_NAME, ''' AS 列名, CAST(', QUOTENAME(COLUMN_NAME), ' AS NVARCHAR(MAX)) AS 值 FROM ', QUOTENAME(@TableName), ' WHERE ', QUOTENAME(@PrimaryKeyCol), ' = ''', @TargetValue, ''''),
    N' UNION ALL '
)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = @TableName;

EXEC sp_executesql @DynamicSQL;
  • 替换代码里的你的表名主键列名要查询的主键值为你的实际信息
  • 执行后会返回两行结果:第一列是列名,第二列是对应的值,每一列单独占一行,完美解决大列数的阅读痛点

小提示:如果你的列里有XML、二进制这类特殊数据类型,可以调整CAST里的转换类型,确保内容能正常显示。

内容的提问来源于stack exchange,提问作者Volker

火山引擎 最新活动