sql 将单行转换为键/值列

2024-03-15

我有一个返回 1 行的 SQL 查询,其中包含多个列标题:

Col 1 | Col 2 | Col 3
val 1 | Val 2 | Val 3

有没有办法将此行转换为 2 列,即:

Col 1 | Val 1
Col 2 | Val 2
Col 3 | Val 3

这是在 SQL Server 2008 r2 上运行

编辑:添加一个更好的例子

   Product_Code | Product_Name | Customer_Name
   101          | yummy cake   | derps cake shop

来自一个简单的

select p.prod_code, p.prod_name, c.cust_name from product p 
inner join customer c on     p.id = c.id

类型查询。我想要显示的是:

   col heading 1| col heading 2
   product_code | 101
   Product_Name | yummy cake
   customer_name| derps cake shop

Try this

CREATE TABLE #Table1
    ([Col 1] varchar(5), [Col 2] varchar(5), [Col 3] varchar(5))
;

INSERT INTO #Table1
    ([Col 1], [Col 2], [Col 3])
VALUES
    ('val 1', 'Val 2', 'Val 3')
;

SELECT Col,Val FROM
(
SELECT * FROM #Table1
) P
UNPIVOT
(
    val FOR Col IN ([Col 1], [Col 2], [Col 3])
) pvt

DROP TABLE #Table1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

sql 将单行转换为键/值列 的相关文章

  • 将数据类型 varchar 转换为 int 时出错

    我试图使用基于 varchar 类型的 Name 列的输入值的存储过程返回 item 表的 ItemId 列值 但是每当我将任何值传递给存储过程时 它都会返回一个错误 将数据类型 varchar 转换为 int 时出错 create pro
  • SQL 中的链表

    在 MySQL 数据库中存储链接列表的最佳方法是什么 这样插入就很简单 即 您不必每次都重新索引一堆内容 并且可以轻松地按顺序拉出列表 使用 Adrian 的解决方案 但不是增加 1 而是增加 10 甚至 100 然后可以按照要插入的内容之
  • 将日期时间列拆分为年、月和周

    我想拆分日期时间列 以便年份和月份在 select 语句输出中都有自己的列 我还希望有一个按一年中的一周而不是特定日期的专栏 基本上 我希望单独的年 月和周列显示在我的 select 语句输出中 尝试使用DatePart http msdn
  • Bool类型返回规则

    我使用 dapper ORM 所以我使用两个规则Query
  • SQL 查询 - 将查询中的日期格式更改为 DD/MM/YYYY

    我想要实现的目标相当简单 将一种日期格式转换为另一种日期格式 由此 Jan 30 2013 12 00 00 000AM对此 DD MM YYYY或者在这种情况下30 01 2013 但是 当它是该月的 1 号到 9 号时 日期格式缺少零并
  • 如何在 PL/SQL 中查找字符串中不同字符的数量和名称[重复]

    这个问题在这里已经有答案了 我对 PL SQL 很陌生 我需要获取字符串中不同字符的名称和计数 例如 如果我有一个字符串str helloexample 我需要获得不同字符的输出str i e heloxamp 我怎样才能做到这一点 您可以
  • SQL Server 2008:将存储过程(动态列)的结果与 SELECT 语句的结果连接起来

    我的结果是由这个存储过程 https stackoverflow com questions 15076215 sql server 2008 multiple joined columns to rows 我想将这些结果与另一个表中的数据
  • 如何停止“已将数据库上下文更改为...”消息

    有什么办法可以阻止Changed database context to 当 SQL 片段有一个时的消息USE database in it 您需要设置错误级别 http msdn microsoft com en us library m
  • SQLAlchemy:如何过滤日期字段?

    这是模型 class User Base birthday Column Date index True in database it s like 1987 01 17 我想在两个日期之间进行过滤 例如选择 18 30 年区间内的所有用户
  • 水晶报表参数选择有限制吗?

    我正在尝试根据按用户分组的 Oracle 数据库制作 Crystal Reports 11 报告 我有超过一千个用户 我想创建一个参数字段 提示用户选择他们想要查看其结果的用户 但是我的参数选择字段仅显示 221 个可能的用户 由于 SQL
  • 如何在SQL中编写连接查询[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 问题 给定 Employee 和 AnnualReviews 表 编写一个查询以返回所有从未接受过按 HireDate 排序的评论的员
  • Oracle PLSQL 将日期时间截断为 15 分钟块

    我想将我的数据聚合成 15 分钟的片段 一刻钟 为此 我编写了一些生成 15 分钟日期时间块的代码 SELECT TRUNC SYSDATE hh 0 25 24 ROWNUM 0 25 24 AS time start ROWNUM TR
  • 当表有聚集索引时,数据是如何存储的

    我发现了无数的帖子 开头都是这样的很多时候我遇到人们说 聚集索引根据聚集索引键对表内的数据进行物理排序 这不是真的 然后这些帖子继续描述它是如何通过链表或其他方式实际存储的 例如 这个post http sqlwithmanoj wordp
  • 从 docker 中的脚本创建 SQL Server 数据库

    我希望这是一个简单的问题 我在任何地方都找不到任何东西 如何在Microsoft SQL Server Docker容器 Dockerfile 我正在看以下内容Dockerfile FROM microsoft mssql server w
  • 如何在 postgresql 中使用“时间”字段按小时分组?

    我有一张带有一列的桌子ctime类型的time without time zone cdate ctime 2016 12 24 12 02 17 2016 12 24 12 02 32 2016 12 24 12 03 00 2016 1
  • 使用 MYSQL 创建随机数

    我想知道是否有一种方法可以选择 100 到 500 之间随机生成的数字以及选择查询 Eg SELECT name address random number FROM users 我不必将此数字存储在数据库中 而只需使用它来显示目的 我尝试
  • ASP.NET Core 7.0 登录时出错:证书链由不受信任的机构颁发

    我使用 SQL Server 创建了一个简单的 NET 7 0 应用程序 如果我使用默认的 localdb 甚至在将其更改为 网络服务器 之后 我会收到以下错误 证书链是由不受信任的机构颁发的 我的连接字符串是 mysqlserver co
  • Oracle 时间戳数据类型

    不带参数的时间戳数据类型和带参数 0 的时间戳数据类型有什么不同 timestamp VS timestamp 0 括号中的数字指定要存储的小数秒的精度 所以 0 意味着不存储任何一小部分秒 而仅使用整秒 如果未指定 则默认值为小数点分隔符
  • SSRS中可选的多值参数

    我的报告中有 3 个多值参数 其中 2 个是可选的 有没有办法在不从 2 个可选参数中选择任何参数的情况下获得报告中的结果 我的存储过程将多值参数检查为 States IN SELECT FROM Split State 我已经使用 WHE
  • “已经有一个与此命令关联的打开的 DataReader,必须先将其关闭。”

    我正在开发需要连接到另一个数据库以获取一些数据的应用程序 为此 我决定使用 SqlConnection reader 等 我需要执行一些查询 例如首先我需要获取某个用户的卡 ID 之后我需要通过该卡 ID 获取一些数据 这是我的代码 reg

随机推荐