Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在sql查询中选择2行中的2列_Sql_Sql Server - Fatal编程技术网

在sql查询中选择2行中的2列

在sql查询中选择2行中的2列,sql,sql-server,Sql,Sql Server,我有以下格式的数据: ID Vendor Name Company Name 1 VendorA CompanyA 2 VendorB CompanyB 3 VendorC CompanyC 我想要下面的格式 ID CompanyDetails

我有以下格式的数据:

ID          Vendor Name     Company Name

1                 VendorA         CompanyA

2                 VendorB         CompanyB

3                 VendorC         CompanyC
我想要下面的格式

ID                                     CompanyDetails     
1                                          CompanyA                                

1                                          VendorA                               

2                                          CompanyB

2                                          VendorB 

3                                          CompanyC

3                                           Vendor C
我用过工会,但没用, 请帮助我为此编写sql脚本

谢谢

试试这个

SELECT ID,    CompanyDetails
FROM
(
    SELECT ID, VendorName As CompanyDetails, 2 as Tag
    FROM tableName
    UNION ALL
    SELECT ID, CompanyName, 1 As Tag
    FROM tableName
) Z
ORDER BY ID, Tag
SELECT ID, [Vendor Name] from table
union all
SELECT ID, [Company Name] from table
Order by ID

试试这个,它会帮你的

select * into #tab from(
select 1 ID, 'VendorA' as [Vendor Name], 'CompanyA' [CompanyName]
union all
select 2, 'VendorB', 'CompanyB'
union all
select 3, 'VendorC', 'CompanyC'
)as a


select id,[Vendor Name] from #tab
union all
select id,[CompanyName] from #tab
order by  ID

您可以设置顺序以保持顺序

SELECT ID, CompanyDetails
FROM (
    SELECT ID, CompanyName AS CompanyDetails, 1 AS Ord
    FROM #table
    UNION
    SELECT ID, VendorName, 2 AS Ord
    FROM #table


) A
ORDER BY ID, Ord

通过使用交叉应用和NTIL,我们也可以实现

 Select ID,CompanyDetails 
        from (
Select NTILE(6)OVER(PARTITION BY COL ORDER BY COL DESC )ID ,
T.VAL As CompanyDetails 
            from (
select COL,VAL from  #Table1
CROSS APPLY(VALUES 
    ('Vendorname',[Vendor Name]),
    ('CompanyName',[CompanyName]))CS(COL,VAL))T)TT
    ORDER BY ID

我已经试过了,但联盟都改变了顺序。对于某些行,我先打印company Name,然后打印Vendor Name,对于其他一些行,我将按顺序反转rowsCheck edited answer,顺序中使用的标记列将首先显示Comapy Name,然后再显示VendorName。对于每个IDF,您希望更改顺序的行是什么?具体说明dou的意思