我創建了以下過程以最終獲取值(而不是最後的列名稱)。但是,如果僅在最後一個查詢中使用聲明的@ColumnName,則只會看到列名「XXX」,而不是該行的XXX值。使用變量查詢總是返回變量值
我有以下幾點:
DECLARE @ColumnName AS VARCHAR(50)
SET @ColumnName = (select column_name FROM INFORMATION_SCHEMA.COLUMNS where table_name = 'History' and ORDINAL_POSITION = 2)
SELECT @ColumnName from kat.[dbo].[History]
我想獲得的是以下結果:
select XXX from kat.[dbo].[History]
即使@ColumName有這種不正常的XXX的值。
在左我得到我的結果(列的總名稱,它的右側是所需的值)
1-XXX, The value from XXX
2-XXX, the next value from XXX
3-XXX, the next value from XXX
很多感謝,
吉
我假設歷史有很多行。您感興趣的是XXX的哪個價值? –
因爲@ColumnName是一個varchar,它總是會返回一個字符串。在SQL Server中,沒有列變量類型。相反,您需要使用名爲[動態SQL(源MS文檔)]的技術(https://docs.microsoft.com/en-us/sql/odbc/reference/dynamic-sql)。 –