如何显示动态选定列的数据

时间:2014-01-30 16:49:21

标签: sql dynamic-data

我有一个包含20列的表格。我根据用户输入动态选择一列,然后想要用它的数据显示所选列。这是我写的代码,但问题是我得到列名作为所选列的数据。谁能让我知道我在这里做错了什么。

ALTER PROCEDURE Getreport
@Subject [varchar](10),
WITH EXECUTE AS CALLER
AS
--Query to generate report

SELECT FirstName, LastName, @Subject FROM Student  

2 个答案:

答案 0 :(得分:1)

您需要使用动态SQL:

EXEC('SELECT FirstName,LastName,'+ @Subject +'FROM Student')

答案 1 :(得分:0)

你的程序看起来应该是这样的。此处显示Similar solution

SET @s = CONCAT('SELECT FirstName, LastName, ', @Subject, ' FROM Student');
PREPARE stmt FROM @s;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;