2

私の最初のテーブルAには、表示する必要があるデータがありますが、表示順序はここのものとは異なります。表示順序は、2 番目のテーブルBの位置によって異なります。最下位のフィールドが最初に来て、名前の価格が欲しい

  Field_21     Field_31    field_41
    112            wed         www
    111            tue         dse
    123             sun        edwd




    Name            POSITION         Name
    Field_31           2              ask
    Field_21           1              bid
    Field_41           0              price

最終データは次のようになります

price      bid         ask
www        112         wed
dse        111         tue
edwd       123         sun
4

1 に答える 1

3

次のことを試してください。

DECLARE @tbl VARCHAR(60), @sql VARCHAR(8000)

SET @tbl = 'tblData' -- change for the table                     

SELECT @sql = 'SELECT '
              + STUFF(
                         (
                           SELECT      ', ' + ColumnName + ' as ' + ColumnLabel
                           FROM       columnOrder
                           ORDER BY Position
                           FOR XML PATH('')
                         )
                      , 1, 1, ''
                     )
              + ' FROM '
              + @tbl


--SELECT @sql
EXEC (@sql)

1 つのテーブルに [name] という 2 つの列を含めることはできないため、ColumnName と ColumnLabel を使用します。

このsqlfiddleを参照してください

于 2014-07-01T12:24:03.650 に答える