Anc*_*ent 4 sql sql-server sql-server-2008
当我们将列名称作为字符串时,这是否可以获得多列值如果我有一个表Test并且我有列FirstName , LastName , Address.
现在我想要获得所有三列的值,但我想使这个动态,所以我只是传递字符串列名称我得到的列的值
例
Select
(select column_name from metadata )
from source table
Run Code Online (Sandbox Code Playgroud)
将列名称作为参数传递
DECLARE @COLS NVARCHAR(MAX)
DECLARE @TABLE NVARCHAR(MAX)
SET @COLS = 'COL1,COL2'
SET @TABLE = 'TABLENAME'
Run Code Online (Sandbox Code Playgroud)
现在执行查询
DECLARE @QRY NVARCHAR(MAX)
SET @QRY = 'SELECT (SELECT '+@COLS+' FROM '+@TABLE+') FROM sourcetable'
EXEC SP_EXECUTESQL @QRY
Run Code Online (Sandbox Code Playgroud)