• rs80 (10/7/2013)


    I'm using SQL Server 2008 R2. However, I think the database might be configured to run as SQL Server 2005 (9.0).

    The expected result that I want is:

    ProductID ProductName

    1 Keyboard

    2 Mouse

    Sorry for the confusion.

    Unfortunately, that's what I thought. This is a PIVOT, not an UNPIVOT.

    - The only way to convert data into column names is by using Dynamic SQL.

    - The major issue here is that you're relying on row ordering (of the data saved in your table) to match up ProductID=1 with ProductName=Keyboard. That can't be guaranteed.

    You could construct a dynamic SQL query that would appear to deliver the results you want, but I don't want to lead you down the garden path, thinking that solution will work for you in all cases.


    My mantra: No loops! No CURSORs! No RBAR! Hoo-uh![/I]

    My thought question: Have you ever been told that your query runs too fast?

    My advice:
    INDEXing a poor-performing query is like putting sugar on cat food. Yeah, it probably tastes better but are you sure you want to eat it?
    The path of least resistance can be a slippery slope. Take care that fixing your fixes of fixes doesn't snowball and end up costing you more than fixing the root cause would have in the first place.

    Need to UNPIVOT? Why not CROSS APPLY VALUES instead?[/url]
    Since random numbers are too important to be left to chance, let's generate some![/url]
    Learn to understand recursive CTEs by example.[/url]
    [url url=http://www.sqlservercentral.com/articles/St