You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将SQL Server中Country表的Name_Country列值转为透视格式?

解决方案

针对你需要将DBO.Country表中前4条Name_Country数据转为单行多列的需求,以下是两种适用于SQL Server的实现方法:

方法一:条件聚合(逻辑直观,推荐)

通过给每条数据添加行号,再利用条件聚合将行数据转为列:

SELECT
    MAX(CASE WHEN rn = 1 THEN Name_Country END) AS NAME_1,
    MAX(CASE WHEN rn = 2 THEN Name_Country END) AS NAME_2,
    MAX(CASE WHEN rn = 3 THEN Name_Country END) AS NAME_3,
    MAX(CASE WHEN rn = 4 THEN Name_Country END) AS NAME_4
FROM (
    SELECT TOP(4) Name_Country,
           ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS rn
    FROM DBO.Country
) t

说明:ORDER BY (SELECT NULL)用于保留原始查询的返回顺序,若需要按特定字段排序,替换为对应字段即可(比如ORDER BY Name_Country)。

方法二:使用PIVOT运算符

利用SQL Server内置的PIVOT功能实现行转列:

SELECT NAME_1, NAME_2, NAME_3, NAME_4
FROM (
    SELECT TOP(4) Name_Country,
           'NAME_' + CAST(ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS VARCHAR(10)) AS col_name
    FROM DBO.Country
) t
PIVOT (
    MAX(Name_Country)
    FOR col_name IN (NAME_1, NAME_2, NAME_3, NAME_4)
) p

执行结果

运行上述任意语句后,将得到目标格式的结果:

NAME_1NAME_2NAME_3NAME_4
USAENGLANDITALYGERMANY

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 13:35:48