Как получить значение строки для сопоставления со столбцами в SQL Server - PullRequest
0 голосов
/ 25 апреля 2018

Таблица: fieldTable (только с одним столбцом ColumnFileName)

@fieldTable (ColumnFileName varchar(10))

ColumnFileName: (Values are as below).    
        f1
        f2
        f3
        f4,
        f5

Таблица: ValueTable (9 столбцов, как показано ниже)

@valuetable(id INT, f1 VARCHAR(100), f2 VARCHAR(100), 
            f3 VARCHAR(100), f4 VARCHAR(100), f5 VARCHAR(100),
            f6 VARCHAR(100), f7 VARCHAR(100), comments VARCHAR(100))

 Id   f1     f2   f3,      f4         f5      f6,     f7       comments
 ----------------------------------------------------------------------
  1   Name   Id   Salary   Interest   Offer   value   Salary   ''

Как получить результаткак показано ниже (для сопоставления значения строки таблицы 1 со значением столбца таблицы 2):

f1,Name,
f2,Id
f3,Salary
f4,Interest
f5,Offer,
f6,value,
f7,Salary,

1 Ответ

0 голосов
/ 25 апреля 2018

Я думаю, что вы получите то, что вам нужно. Сначала сделайте несколько правильных вставок, чтобы кто-нибудь из них мог, по крайней мере, иметь их.Затем Basic отключить и сопоставить.

DECLARE @FIELDTABLE TABLE (COLUMNFILENAME VARCHAR(10))
INSERT INTO @FIELDTABLE (COLUMNFILENAME)
VALUES ( 'f1')
        ,('f2')
        ,('f3')
        ,('f4')
        ,('f5')
        ,('f6')
        ,('f7')

DECLARE @VALUETABLE TABLE (Id INT,f1 varchar(100),f2 varchar(100),f3 varchar(100),f4 varchar(100),f5 varchar(100),f6 varchar(100),f7 varchar(100),comments varchar(100))
INSERT INTO @VALUETABLE (Id, f1, f2, f3, f4,f5,f6,f7,comments)
        Values (1, 'Name','Id','Salary','Interest','Offer','value','Salary','')

SELECT F.COLUMNFILENAME
        ,v.Columns

FROM @FIELDTABLE f
inner join
(
SELECT Columns, Columns2
FROM (
    SELECT *
        from @VALUETABLE
    ) cp
UNPIVOT
(
    Columns FOR Columns2 in (F1,F2,F3, f4,f5,f6,f7)
) as UP
) v
on f.COLUMNFILENAME = v.Columns2
...