DECLARE @cols AS NVARCHAR(MAX)
DECLARE @query AS NVARCHAR(MAX)
select @cols = '[1015],[1060],[1261],[1373]'
print @cols
set @query = 'SELECT header, ' + @cols + '
from
(
select product_id, header, value
from
(
select
cast(product_id as varchar(100))product_id ,
cast(product_name as varchar(100)) product_name,
cast(product_price as varchar(100)) product_price,
cast(product_weight as varchar(100))product_weight,
cast((select TOP 1 image_name from tblProductImage where tblProductImage.product_id=tblProduct.product_id) as varchar(100)) ProductImage
from tblProduct
) p
unpivot
(
value
for header in (product_name, product_price, product_weight,ProductImage)
) unp
) x
pivot
(
max(value)
for product_id in (' + @cols + ')
) p '
execute(@query)
我使用上面的查詢和其發電輸出如下靜態列名
現在我的問題是我要的是列名應該是靜態的..因爲目前存在最大到他們的最多5列第一列將是標題,這是OK
但是對於列的其餘部分,我還希望名稱應該像Prodcut1,Product2,Product3和Product4。如果只有三種產品,那麼它也顯示五列,但對於最後一列,所有屬性值應該爲空
因此,您希望產品列名稱爲Product1,Product2,Product3和Product4?由於product_id不會是列標題,您是否需要具有該值的另一行? – Taryn