CREATE PROCEDURE [dbo].[test]
@ID int,
@case varchar(50)
AS
set nocount on
begin
If @case = 'aaaa'
select a1,a2,a3 from t1 where ID = @ID If @case = 'bbbb'
select v1,v2 from t2 where ID = @ID If @case = 'cccc'
select b1,b2,b3,b4 from t3 where ID = @ID ---.......
---执行的效果和上面一样,求更好的写法 ---就像vb语言中select case多开关条件语句的效果,在sql有没有更好的写法,因为用单个存储过程的话,它们输入参数个数、参数类型和返回结果集个数都相似,end
GO
create procedure dbo.test
@id int,
@case varchar(50)
as
begin
case when @case='aaaa'
then select a1,s2,a3 from t1 where id= @id
when @case ='bbbb'
then select v1,v2 from t2 where id=@id
when @case='cccc'
then select b1,b2,b3,b4 from t3 where id=@id
end