declare @sum as nvarchar(20) = 'sum(Salary)'
select @sum from Employee
我想做这样的事情。我需要将我的sql查询部分存储在变量中,并在sql查询中使用该变量。有可能吗?
答案 0 :(得分:1)
SQL Server不支持宏替换。但它确实允许DYNAMIC SQL。下面是一个简单的例子
declare @sum as nvarchar(20) = 'sum(Salary)'
Declare @SQL varchar(max) = 'select '+@Sum+' from Employee'
Exec(@SQL)
现在,要明确的是,SQL注入存在风险。看一看http://bobby-tables.com/
答案 1 :(得分:0)
YOU CAN USE DYNAMIC QUERY
BEGIN TRAN
DECLARE @sum NVARCHAR(20) = 'sum(Salary)',@SQL VARCHAR(4000)
SET @SQL=''
SET @SQL = @SQL + 'SELECT '+@Sum+' FROM Employee'
PRINT @SQL
EXEC(@SQL)
ROLLBACK TRAN
答案 2 :(得分:-1)
id'总和(工资)'就像那样它应该返回
的结果declare @sum as nvarchar(20) = 'sum(Salary)'
产生一个文字字符串
和(工资)
但如果喜欢:
declare @sum as nvarchar(20)
select @sum = sum(Salary),column1,..and so on from your table
然后它应该从你的函数返回一个结果