如何在If-else语句中设置和返回SQL存储过程中的列值

如何在If-else语句中设置和返回SQL存储过程中的列值,sql,sql-server-2008,stored-procedures,Sql,Sql Server 2008,Stored Procedures,关于我的,我不确定如何设置并返回列数据值,而不将其保存到表中 if @datafield = 1 set ColumnA.table2=1 else if @datafield = 2 AND @datafield2 = 3 set ColumnA.table2= 0 else return (SELECT ColumnA.table2 FROM table1 INNER JOIN table2 on table1.id and table2.id Where @datafield3 = 0)

关于我的,我不确定如何设置并返回列数据值,而不将其保存到表中

if @datafield = 1
set ColumnA.table2=1
else if @datafield = 2 AND @datafield2 = 3
set ColumnA.table2= 0
else
return (SELECT ColumnA.table2 FROM table1 INNER JOIN table2 on table1.id and table2.id Where @datafield3 = 0)

我不知道在设置值后如何返回,我尝试了开始和结束,但并没有按照您可以执行的最简单的方法返回值

Declare @returnvalue int

if @datafield = 1
   set @returnvalue=1
else if @datafield = 2 AND @datafield2 = 3
set @returnvalue= 0
else
     SELECT @returnvalue=ColumnA.table2 FROM table1
        INNER JOIN table2 on table1.id and table2.id 
        Where @datafield3 = 0

 select @returnvalue as ColumnA
 return @returnvalue

您可以做的最简单的事情就是返回值

Declare @returnvalue int

if @datafield = 1
   set @returnvalue=1
else if @datafield = 2 AND @datafield2 = 3
set @returnvalue= 0
else
     SELECT @returnvalue=ColumnA.table2 FROM table1
        INNER JOIN table2 on table1.id and table2.id 
        Where @datafield3 = 0

 select @returnvalue as ColumnA
 return @returnvalue

我很想这么做但我必须以ColumnA的形式返回数据,否则,其他人创建的某个应用程序将不起作用,我不允许更改它:为此,您只需写下选择@returnvalue,它也将进行选择,并且不会使现有的应用程序崩溃。还可以将@returnvalue变量修改为输出parameter@ArunManjhi-如果返回值为int,则无需将其转换为输出因为sql proceudre允许返回value@PranayRana但是我希望我的代码像C代码一样发送columnA,它试图获取columnA的值。我很乐意这样做,但我必须以columnA的形式返回数据,否则,其他人创建的某个应用程序将不起作用,我不允许更改它:为此,您只需写下选择@returnvalue,它也将进行选择,并且不会使现有的应用程序崩溃。还可以将@returnvalue变量修改为输出parameter@ArunManjhi-如果返回值为int,则无需将其转换为输出因为sql proceudre允许返回value@PranayRana但我希望我的代码将columnA发回,就像在C代码中一样,它试图获取ColumnA1的值。我认为你的内部连接语法不正确。表1中只有一行吗?如果没有,您将从中随机获得一行table@RomanPekar抱歉,我更改了语法,所以这不应该是更改对您有效的问题…1。我认为你的内部连接语法不正确。表1中只有一行吗?如果没有,您将从中随机获得一行table@RomanPekar抱歉,我更改了语法,所以这不应该是更改对您有效的问题。。。