Как найти имя столбца таблицы по значению столбца в SQL Server 2005? - PullRequest
1 голос
/ 28 мая 2011

У меня есть представление, которое возвращает результат следующим образом:

     D1      D2      D3      D1_CODE       D2_CODE      D3_CODE
    ----    ----    ----    ---------     ---------    ---------
   10.00    13.00   14.00      OD           LENGTH     THICKNESS

Я создал представление по приведенному ниже запросу выбора,

    SELECT 
        MKT_MRL_Detail.D1,
        MKT_MRL_Detail.D2,
        MKT_MRL_Detail.D3,
        MAS_SizeType.D1_Code,
        MAS_SizeType.D2_Code,
        MAS_SizeType.D3_Code
FROM
        MKT_MRL_Detail INNER JOIN
        STR_Item ON STR_Item.ItemID = MKT_MRL_Detail.ItemID INNER JOIN
        MAS_SizeType ON MAS_SizeType.SizeTypeID = STR_Item.SizeTypeID

Я получил представление, основанное наВнутреннее соединение двух столов.Приведенное выше представление возвращает только одну строку.Здесь я хочу узнать, какой столбец имеет значение «ДЛИНА»: я использую SQL Server 2005. Может ли кто-нибудь помочь, пожалуйста?

1 Ответ

1 голос
/ 28 мая 2011

Мое лучшее предложение - переписать представление (или, возможно, даже базу данных), поскольку это не очень хороший дизайн. Однако я сомневаюсь, что это возможно. Если это не так, вот мое предложение:

SELECT *
FROM (
SELECT D1 AS Value, D1_CODE AS Code
FROM view
UNION ALL
SELECT D2, D2_CODE
FROM view
UNION ALL
SELECT D3, D3_CODE
FROM view
) AS myInfo
WHERE Code='LENGTH'

Это не красиво, но это сделало бы работу.

...