2013-12-05 4 views
0

У меня есть набор адресов, используемых для печати этикеток, и я хотел бы сгруппировать их.Строки группировки T-SQL в столбцы

What I have: 
UID CustName LocName State Zip Comments1 Comments2 
========================================================= 
1  John  R1  NC 158631 Foo   Bar 
2  Smith R2  SC 126543 Bla   Bla Bla 


What I'm looking for: 
Col_1 Col_2 Col_3 
============================= 
John  R1  NC  
158631 Foo  Bar 
Smith R2  SC  
126543 Bla  Bla Bla   

Надеюсь, это имеет смысл.

ответ

2

Вам необходимо отключить столбцы данных в наборах по 3 штуки. Если вы используете SQL Server 2005+, то вы можете использовать CROSS APPLY, чтобы получить результат:

select col_1, col_2, col3 
from yourtable 
cross apply 
(
    select custname, locname, state union all 
    select zip, comments1, comments2 
) c (col_1, col_2, col3) 
order by uid; 

Примечание, тип данных должен быть одинаковым на колоннах вы размещающих вместе, например, если zip был int , то вам придется преобразовать его в varchar, чтобы вы могли разместить данные в том же столбце, что и custname.

+0

Спасибо .... иногда вы просто не видите логику –

Смежные вопросы