菜鸟请教语法问题

kinki1980 2005-09-23 09:56:35
CREATE PROCEDURE up_select
@checked boolean,
@type varchar(50),
@edit varchar(50)
AS
if (@checked)
select * from customer where @type like' %'@edit% 'order by custid
else
select * from customer where @type=@edit order by custid

我是新手。。看了半天也不知道怎么回事。。请赐教!!
...全文
132 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
filebat 2005-09-27
楼主,你那个不行的@type是用来表示列名的。
exec('select * from customer where @type=+'''+'@edit'+'''+ order by custid')
中就不是列名啊。

wgsasd311(自强不息) 就可以,你试过了没?
回复
kinki1980 2005-09-27
顶一顶!
回复
churchatp1 2005-09-23
用动态sql
因为你的@type,@edit 都是字符串,假设分别为‘a’,‘b’
select * from customer where @type=@edit order by custid
就相当于select * from customer where 'a'='b' order by custid
当然不对了
回复
kinki1980 2005-09-23
谢谢。。最好能讲解下。。不好意思。。我太菜了。。!!
回复
wgsasd311 2005-09-23
CREATE PROCEDURE up_select
@checked bit,
@type varchar(50),
@edit varchar(50)
AS
if @checked=1
exec('select * from customer where '+ @type+' like ' +'''%'+@edit+'%'''+'order by custid ')
else
exec('select * from customer where '+@type+'='+@edit+' order by custid')
回复
kinki1980 2005-09-23
服务器: 消息 156,级别 15,状态 1,过程 up_select,行 7
在关键字 'select' 附近有语法错误。
服务器: 消息 156,级别 15,状态 1,过程 up_select,行 8
在关键字 'else' 附近有语法错误。
回复
kinki1980 2005-09-23
exec('select * from customer where @type=+'''+'@edit'+'''+ order by custid')
???????????
回复
kinki1980 2005-09-23
原来还有这个问题啊。。那要怎么解决啊。。详细点好吗?
这样行吗?
exec('select * from customer where @type='+@edit+' order by custid')

回复
相关推荐
发帖
应用实例
创建于2007-09-28

2.7w+

社区成员

MS-SQL Server 应用实例
申请成为版主
帖子事件
创建了帖子
2005-09-23 09:56
社区公告
暂无公告