怎样在存储过程中根据变量的不同使sql语句中where后面的条件不一样!怎么做判断!哪位gg帮帮忙
解决方案 »
- oracle真的比SQL SERVER强很多吗?
- 模态弹出窗口的高度不控制根据弹出页面的内容自己来决定
- 跪求.net中关于鼠标移上去显示动态DIV层代码!
- 如何给LinkButton等服务器控件加上JQuery应用
- DataGrid中的链接怎么传值??
- 请问一下asp.net的DLL放到哪去了
- 能让.net编译出的页面是GB2312么??我的默认编译出来的是Unicode~急死了,我的浏览器显示Unicode少字!没办法调试啊
- 在VS IDE2003中建立的工程,新建立的数据集为什么总是找不到?大家帮忙啊
- 请问DataGrid怎么分页呀
- 焦点控制
- 怪问题,请高手解决!
- 求助:ASP.Net项目创建问题
CREATE PROCEDURE tp_Fetch_MainEmail_By_UserType
(
@UserType INT
)
AS
BEGIN
SET NOCOUNT ON
IF @UserType = 391
BEGIN SELECT A.FirstName + ' ' + A.LastName AS FullName,
A.PersonID,
B.ItemValue AS Email
FROM PersonBase A
Left JOIN PersonContactInfo B ON B.PersonID = A.PersonID AND B.ContactMethodCode = 404
order by FullName
END
IF @UserType = 392
BEGIN
SELECT A.StaffFirst + ' ' + A.StaffLast AS FullName,
A.StaffBaseID as PersonID,
B.ItemValue AS Email
FROM StaffBase A
Left JOIN StaffContactInfo B ON B.StaffBaseID = A.StaffBaseID AND B.ContactMethodCode = 404
order by FullName
END
IF @UserType = 393
BEGIN
SELECT A.FirstName + ' ' + A.LastName AS FullName,
A.ConTactBaseID as PersonID,
B.ItemValue AS Email
FROM ContactBase A
LEFT JOIN ContactContactInfo B ON B.ConTactBaseID = A.ConTactBaseID AND B.ContactMethodCode = 404
order by FullName END IF @@ERROR <> 0
RETURN 1 RETURN 0
END GO
将你的变量作为参数传递给存储过程,存储过程中用if语句判断参数,分别执行。如果有多种情况那只能是多个if语句,case无法实现。
如:singlepine(小山)
create procedure TB_Login_insert_or_select
(
@id varchar(10),
@password varchar(10),
@name varchar(30)='',
@erro bit output,
@opreat bit
)
as
declare @number int
if ( @opreat=1)
begin
select @number=count(LU_id) from TB_Login where LU_id=@id
if (@number=0)
begin
insert into TB_Login (LU_id,LU_password,LU_name) values(@id,@password,@name)
set @erro=1
end
else
begin
set @erro=0
end
end else
begin
select @number=count(LU_id) from TB_Login where LU_id=@id and LU_password=@password
if (@number=0)
begin
set @erro=0
end
else
begin
set @erro=1
end
end