在SQL Server中将行转换为列 [英] Convert rows to column in SQL server

查看:157
本文介绍了在SQL Server中将行转换为列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有下表



姓名电邮MobileNo

1 0 1







输出表



FiledName IsValid

名称1

电子邮件0

MobileNo 1



我尝试了什么:



我使用了枢轴逻辑但没有获得所需的输出。

解决方案

你必须unpivot [ ^ ]数据;)



  DECLARE   @ tmp  (名称 INT ,电子邮件 INT ,MobileNo  INT 

INSERT INTO @ tmp (姓名,电子邮件,MobileNo)
VALUES 1 0 1


SELECT FieldName,IsValid
FROM @ tmp AS Pvt
UNPIVOT(IsValid FOR FieldName IN (名称,电子邮件,MobileNo)) AS UnPvt


 create table T(Name int,Email int,MobileNo int)
insert into T值(1,0,1)

选择*来自T

选择FieldName,u.Isvaild来自T unpivot(Isvaild for FieldName in(Name,Email,MobileNo)) û


I have below table

Name Email MobileNo
1 0 1



OUTPUT TABLE

FiledName IsValid
Name 1
Email 0
MobileNo 1

What I have tried:

I have used pivot logic but do not get required output.

解决方案

You have to unpivot[^] data ;)

DECLARE @tmp TABLE(Name INT, Email INT, MobileNo INT)

INSERT INTO @tmp(Name, Email, MobileNo)
VALUES(1, 0, 1)


SELECT FieldName, IsValid
FROM @tmp AS Pvt
UNPIVOT(IsValid FOR FieldName IN (Name, Email, MobileNo)) AS UnPvt


create table T (Name int,Email int,MobileNo int)
insert into T values(1,0,1)

select * from T

select FieldName,u.Isvaild from T unpivot(Isvaild for FieldName in (Name ,Email ,MobileNo)) u


这篇关于在SQL Server中将行转换为列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆