存储过程:能根据传入值动态指定被查询字段吗?
DECLARE @fieldName char(50)--要查询的字段
DECLARE @Adminacco char(50)--管理员账号
set @fieldName='modify'
set @Adminacco='admin'
SELECT clsid,
re5=case when PATINDEX('%|%', modify)=0 then
PATINDEX('%admin%', modify)
else
PATINDEX('%admin|%', modify) + PATINDEX('%|admin%', modify)
end
FROM InfoLevel
我想达到以下效果(当然下面的语句是错误的):
-----
DECLARE @fieldName char(50)--要查询的字段
DECLARE @Adminacco char(50)--管理员账号
set @fieldName='modify'
set @Adminacco='admin'
SELECT clsid,
re5=case when PATINDEX('%|%', @fieldName)=0 then
PATINDEX('%@Adminacco%', @fieldName)
else
PATINDEX('%@Adminacco|%', @fieldName) + PATINDEX('%|@Adminacco%', @fieldName)
end
FROM InfoLevel
问题点数:100、回复次数:2Top
1 楼zjcxc(邹建)回复于 2004-09-03 14:55:34 得分 100
DECLARE @fieldName varchar(50)--要查询的字段 --这里的定义改一下
DECLARE @Adminacco varchar(50)--管理员账号 --这里的定义改一下
set @fieldName='modify'
set @Adminacco='admin'
exec('
SELECT clsid,
re5=case when PATINDEX(''%|%'', ['+@fieldName+'])=0 then
PATINDEX(''%'+@Adminacco+'%'', ['+@fieldName+'])
else
PATINDEX(''%'+@Adminacco+'|%'', ['+@fieldName+']) + PATINDEX(''%|'+@Adminacco+'%'', ['+@fieldName+'])
end
FROM InfoLevel')Top
2 楼sweiquan(史伟荃)回复于 2004-09-03 15:10:28 得分 0
谢谢
又学了不少东西Top




