表中有ID,Name字段
客户要求最多显示显示30个name字段
问一下怎样实现?
因为表中name的值不固定所以不像网上写的那些,张三,李四,语文数学等
我的想法是能动态给取出来的数据起个固定的表头,比如COL1 一直到 Col30
最好能写一个sql
谢谢
------解决思路----------------------
select [1] 'Co1',[2] 'Co2',[3] 'Co3',[4] 'Co4',[5] 'Co5',[6] 'Co6',[7] 'Co7',[8] 'Co8',[9] 'Co9',[10] 'Co10',
[11] 'Co11',[12] 'Co12',[13] 'Co13',[14] 'Co14',[15] 'Co15',[16] 'Co16',[17] 'Co17',[18] 'Co18',[19] 'Co19',[20] 'Co20',
[21] 'Co21',[22] 'Co22',[23] 'Co23',[24] 'Co24',[25] 'Co25',[26] 'Co26',[27] 'Co27',[28] 'Co28',[29] 'Co29',[30] 'Co30'
from
(select rn,Name
from
(select ID,
Name,
row_number() over(order by ID) 'rn'
from Table_A) t
where rn<=30
) u
pivot(max(Name) for rn in([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],
[11],[12],[13],[14],[15],[16],[17],[18],[19],[20],
[21],[22],[23],[24],[25],[26],[27],[28],[29],[30])) p
/*
Co1 Co2 Co3 Co4 Co5 Co6 Co7 Co8 Co9 Co10 Co11 Co12 Co13 Co14 Co15 Co16 Co17 Co18 Co19 Co20 Co21 Co22 Co23 Co24 Co25 Co26 Co27 Co28 Co29 Co30
---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 A16 A17 A18 A19 A20 A21 A22 A23 A24 A25 A26 A27 A28 A29 A30
(1 row(s) affected)
*/