我有一个包含20列的表格。我根据用户输入动态选择一列,然后想要用它的数据显示所选列。这是我写的代码,但问题是我得到列名作为所选列的数据。谁能让我知道我在这里做错了什么。
ALTER PROCEDURE Getreport
@Subject [varchar](10),
WITH EXECUTE AS CALLER
AS
--Query to generate report
SELECT FirstName, LastName, @Subject FROM Student
答案 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;