存储过程中的IF

yyixin 2009-03-08 08:28:08

ALTER PROCEDURE [dbo].[test]
@c_id int,
AS


BEGIN
SELECT * FROM aaa WHERE bbb=222 and ccc=333
END



要求当@c_id=0时 SELECT 为SELECT * FROM aaa WHERE bbb=222 and ccc=333 ,当大于0时为 SELECT * FROM aaa WHERE bbb=222 and ddd=444 and fff=555;

要求用“DECLARE @cwhere varchar(250) ”变量来进行赋值
...全文
171 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
babygehui 2009-03-09
  • 打赏
  • 举报
回复
ALTER PROCEDURE [dbo].[test]
@c_id int,
AS

DECLARE @cwhere varchar(250)
DECLARE @sql varchar(250)
if @c_id>0
begin
SET @cwhere = 'bbb=222 and ddd=444 and fff=555'
if @c_id=0
begin
SET @cwhere='bbb=222 and ccc=333 '
end
SET @sql = ('SELECT * FROM aaa WHERE '+@cwhere )
execute sp_executesql @sql
END
sdhdy 2009-03-08
  • 打赏
  • 举报
回复
WITH Liang AS(……)”

SQL2005的东西??
yyixin 2009-03-08
  • 打赏
  • 举报
回复
谢谢大家,但我的
BEGIN ……END之间有“;WITH Liang AS(……)”用加上IF或exec会出错
htl258_Tony 2009-03-08
  • 打赏
  • 举报
回复
ALTER PROCEDURE [dbo].[test] 
@c_id int,
AS
DECLARE @cwhere varchar(250)
if @c_id>0
begin
SET @cwhere = 'bbb=222 and ddd=444 and fff=555'
exec('SELECT * FROM aaa WHERE '+@cwhere)
end
else if @c_id=0
begin
SET @cwhere='bbb=222 and ccc=333 '
exec('SELECT * FROM aaa WHERE '+@cwhere)
end
sdhdy 2009-03-08
  • 打赏
  • 举报
回复
ALTER PROCEDURE [dbo].[test] 
@c_id int
AS

DECLARE @cwhere varchar(250)
if @c_id>0
SET @cwhere = 'bbb=222 and ddd=444 and fff=555'
if @c_id=0
SET @cwhere='bbb=222 and ccc=333 '
BEGIN

----*************************************
exec('SELECT * FROM aaa WHERE '+ @cwhere)

END
yyixin 2009-03-08
  • 打赏
  • 举报
回复

ALTER PROCEDURE [dbo].[test]
@c_id int,
AS

DECLARE @cwhere varchar(250)
if @c_id>0
SET @cwhere = 'bbb=222 and ddd=444 and fff=555'
if @c_id=0
SET @cwhere='bbb=222 and ccc=333 '
BEGIN


SELECT * FROM aaa WHERE @cwhere

END



要求这样,但好像不行。
sdhdy 2009-03-08
  • 打赏
  • 举报
回复
--要求用“DECLARE @cwhere varchar(250) ”变量来进行赋值????????????????
ALTER PROCEDURE [dbo].[test]
@c_id int,
AS


BEGIN
if @c_id=0
SELECT * FROM aaa WHERE bbb=222 and ccc=333
if @c_id>0
SELECT * FROM aaa WHERE bbb=222 and ddd=444 and fff=555

END

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧