若一个表tableA,里面有字段name1,name2,score,
若declare @field nvarchar(50)
set @field='name1'
那么要怎么实现子查询中作为条件的列名由@field提供?
比如上述我将@field赋为'name1',那么将等效于
select score from tableA where name1='aaa'?,
但问题是。。在sqlserver里面
select score from tableA where '@field'='aaa',是无效的,请教各位怎么处理?
若declare @field nvarchar(50)
set @field='name1'
那么要怎么实现子查询中作为条件的列名由@field提供?
比如上述我将@field赋为'name1',那么将等效于
select score from tableA where name1='aaa'?,
但问题是。。在sqlserver里面
select score from tableA where '@field'='aaa',是无效的,请教各位怎么处理?
-- name1,name2,score,
declare @field nvarchar(50)
set @field='name1'
declare @v_sql nvarchar(200) = 'select score from tableA where ''''@field''''=''''aaa''''
exec @v_sql;
大概是这样写的,具体你可以搜一下 sql 动态语句执行。