English 中文(简体)
1. 在一栏中删除,但不知道整个价值清单
原标题:pivoting on a column without knowing the entire list of values

页: 1

Title            Name             Type
------------------------------------------------
T1               A                Primary
T1               B                Primary
T2               B                Primary
T2               C                Secondary
T2               D                Secondary

我需要产出。

Title            Primary          Secondary
------------------------------------------------
T1               A, B             NULL/Blank
T2               B                C, D

原始表格中的[Name]栏可具有任何价值。 i. 嗣后可有E、F、G等。

如何做到这一点?

最佳回答

然后,你们需要充满活力的食堂。 2. 考虑编制栏目清单的类似内容:

DECLARE @collist nvarchar(max);
SELECT @collist = STUFF((SELECT  ,   + quotename(Type) FROM YourTable GROUP BY Type FOR XML PATH(  )), 1, 2,   );

现在,你可以使用@collist来帮助构建你想要的询问,然后使用<代码>sp_executesql。

与此类似:

DECLARE @collist nvarchar(max);
SELECT @collist = STUFF((SELECT  ,   + quotename(Type) FROM YourTable GROUP BY Type FOR XML PATH(  )), 1, 2,   );

DECLARE @qry nvarchar(max);
SET @qry = N 
SELECT Title,   + @collist +  
FROM 
(
    SELECT t.Title, t.Type, (SELECT STUFF((SELECT   ,     + t2.Name FROM YourTable t2 WHERE t2.Title = t.Title AND t2.Type = t.Type ORDER BY t2.Name FOR XML PATH(    )),1,2,    )) AS Names
    FROM YourTable t
    GROUP BY t.Type, t.Title
) tg
pivot (max(Names) for tg.Type in (  + @collist +  )) p
 ;
exec sp_executesql @qry;
问题回答

暂无回答




相关问题
How to write this T-SQL WHERE condition?

I ve got two tables: TableA Col1 Col2 TableB Col3 Col4 I want to join them together: SELECT * from TableA join TableB ON (...) Now, in place of ... I need to write an expression ...

Customer and Order Sql Statement

TSQL query to select all records from Customer that has an Order and also select all records from customer that does not have an Order. The table Customer contains a primary key of CustomerID. The ...

Recommended way of querying multiple Versioned tables

Have a win 2003 box with MSSQL 2005 running on it. There is a database which is populated every morning with new/modified SalesOrder made the previous day. The database has several tables: SalesOrder, ...

update duplicate record

I have a table with the following fields Id Name IsPublic i need to write a sql query that updates IsPublic to false where name has a duplicate. Only one of the duplicates should have IsPublic = ...

Define variable to use with IN operator (T-SQL)

I have a Transact-SQL query that uses the IN operator. Something like this: select * from myTable where myColumn in (1,2,3,4) Is there a way to define a variable to hold the entire list "(1,2,3,4)"? ...

Selecting records during recursive stored procedure

I ve got a content management system that contains a hierarchical structure of categories, with sub-categories subject to different ordering options at each level. Currently, that s retrieved by a (...

热门标签