如何在不指定列名的情况下 return table 第一列中的所有值?
How to return all values in the first column of a table without specifying column's name?
我需要创建一个动态 sql 查询,以便 return table 第一列中的所有值。 table 的名称需要是一个变量@tableName(我将 运行 此查询用于多个 table 取决于几个条件)。另外,我不知道第一列的确切名称,但它是由 Id_@tableName .
组成的
我需要类似下面但动态写的东西:
select
(select column_name from INFORMATION_SCHEMA.columns where table_Name= @tableName and ordinal_position=1)
from @tableName
你能帮帮我吗?提前致谢!
USE AdventureWorks;
GO
DECLARE @ObjectName SYSNAME = 'Sales.SalesOrderHeader';
DECLARE @SQL NVARCHAR(MAX);
SELECT
@SQL = 'SELECT ' + QUOTENAME(name) + ' FROM ' + @ObjectName
FROM
sys.columns
WHERE
object_id = OBJECT_ID(@ObjectName)
AND column_id = 1;
EXEC sp_executesql @SQL;
我需要创建一个动态 sql 查询,以便 return table 第一列中的所有值。 table 的名称需要是一个变量@tableName(我将 运行 此查询用于多个 table 取决于几个条件)。另外,我不知道第一列的确切名称,但它是由 Id_@tableName .
组成的我需要类似下面但动态写的东西:
select
(select column_name from INFORMATION_SCHEMA.columns where table_Name= @tableName and ordinal_position=1)
from @tableName
你能帮帮我吗?提前致谢!
USE AdventureWorks;
GO
DECLARE @ObjectName SYSNAME = 'Sales.SalesOrderHeader';
DECLARE @SQL NVARCHAR(MAX);
SELECT
@SQL = 'SELECT ' + QUOTENAME(name) + ' FROM ' + @ObjectName
FROM
sys.columns
WHERE
object_id = OBJECT_ID(@ObjectName)
AND column_id = 1;
EXEC sp_executesql @SQL;