Как передать значение таблицы в запрос SQL - PullRequest
0 голосов
/ 14 апреля 2020

Я написал запрос, который читает это

DECLARE @t1 TABLE (Column nvarchar(4000))
INSERT INTO @t1
SELECT DISTINCT(a.[Column]) from @t2 a

Теперь

SELECT DISTINCT(a.[Column]) from @t2 a

создает столбец из одной строки, как этот

[Candidate Name],[Age],[Application Date]

Я пытался сделать следующее с надеждой на возможность передать значение @ t1 в операторе select, но оно не работает

SELECT (SELECT * from @t1 a) from Main_Table

Я надеялся что с учетом вышеизложенного запрос преобразуется в

SELECT [Candidate Name],[Age],[Application Date] from Main_Table

, и в результате в таблице будет показан результат как

    | Candidate Name | Age | Application Date |
    |----------------|-----|------------------|
    | sam            | 30  | 1/1/2020         |
    | john           | 31  | 2/1/2020         |
    | tom            | 32  | 3/1/2020         |
    | brad           | 34  | 8/1/2020         |
    | rob            | 35  | 9/1/2020         |

, но этого не происходит.

В настоящее время генерируется

            | (No column name)                          |
            |-------------------------------------------|
            | [Candidate Name],[Age],[Application Date] |
            | [Candidate Name],[Age],[Application Date] |
            | [Candidate Name],[Age],[Application Date] |
            | [Candidate Name],[Age],[Application Date] |
            | [Candidate Name],[Age],[Application Date] |

Возможно ли это вообще? Заранее спасибо.

1 Ответ

0 голосов
/ 15 апреля 2020

Вы можете попробовать выполнить следующий динамический c запрос:

указать на примечание
вы не можете иметь имя столбца в качестве "столбца", поэтому измените его

DECLARE @t1 TABLE (Column1 nvarchar(4000))
INSERT INTO @t1
SELECT DISTINCT(a.[Column]) from @t2 a

DECLARE @clist VARCHAR(MAX)=(SELECT * FROM @t1 a)

EXEC ('SELECT '+ @clist+' FROM Main_Table')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...