Как объединить заголовок в SQL-запросе с данными? - PullRequest
0 голосов
/ 19 апреля 2019

Мне нужен заголовок для SQL-запроса. Как его сгенерировать?В следующем коде ContractID равно int, Contract Number равно nvarchar и ClientContractNumber равно nvarchar.

Я попробовал следующий код

SELECT * 
INTO #temp 
FROM 
    (SELECT ContractID,ContractNumber, ClientContractNumber 
     FROM dbo.bsContract 
     WHERE ContractNumber = 'CR6359-V1') t

SELECT 'Title',' ','  '
UNION ALL 
SELECT 'ContractID', 'ContractNumber', 'ClientContractNumber'
UNION ALL 
SELECT * 
FROM #temp

DROP TABLE #temp

Произошла следующая ошибка:

Сообщение 245, Уровень 16, Состояние 1, Строка 7
Преобразованиене удалось преобразовать значение varchar 'Title' в тип данных int.

Ожидаемый вывод ДОЛЖЕН БЫТЬ:

Title 

ContactID     ContractNumber    ClientContractNumber 
----------------------------------------------------    
6368           cr1234              newContract

Ответы [ 2 ]

1 голос
/ 19 апреля 2019

Перед объединением необходимо преобразовать идентификатор контракта в varchar, поскольку для объединения требуется соответствие всех типов данных. Edit:

SELECT * INTO #temp FROM (SELECT cast(ContractID as varchar) ContractID,ContractNumber,ClientContractNumber 
FROM dbo.bsContract WHERE ContractNumber='CR6359-V1') t



SELECT 'Title' ContractID,' ' ContractNumber,'  ' ContractNumber

UNION ALL 

SELECT 'ContractID' ContractID,'ContractNumber' ContractNumber,'ClientContractNumber' ContractNumber
UNION ALL 
SELECT * FROM #temp
DROP TABLE #temp
1 голос
/ 19 апреля 2019

использовать приведение для ContractID

SELECT 'Title',' ','  '

UNION ALL 

SELECT 'ContractID','ContractNumber','ClientContractNumber'
UNION ALL 
SELECT cast( ContractID as varchar(50)),ContractNumber, FROM #temp
DROP TABLE #temp
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...