0

我需要把这张桌子翻过来:

RecID   Date        Time        FirstName   LastName
6       5/28/2013   9:50:07 AM  Jenny       Welhberg

进入这个:

Column      Value
RecID       6
Date        5/28/2013
Time        9:50:07 AM
FirstName   Jenny
LastName    Welhberg

我有:

SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'tablename'

select * from tablename where recid=6

另请注意,我正在为该报告使用 SQL Server 2000。

4

1 回答 1

0

嗯,你可能有问题。这些列似乎有不同的类型。

让我忽略这一点。让我假设它们都具有相同的类型。在“2000”中,您没有 unpivot。我认为最快的方法是进行交叉连接:

select cols.colname,
       (case when cols.colname = 'RecId' then RecId
             when cols.colname  = 'Date' then Date
             when cols.colname  = 'Time' then Time
             when cols.colname  = 'FirstName' then FirstName
             when cols.colname  = 'LastName' then LastName
        end) as Value
from t cross join
     (select 'RecID' as colname union all
      select 'Date' union all
      select 'Time' union all
      select 'FirstName' union all
      select 'LastName'
     ) cols

如果原始类型不是字符串,那么您可能必须转换它们。

于 2013-06-10T20:17:52.267 回答