目前我返回一个布尔值为“1”或“0”或列的值让我在我的一个存储过程中说列A并且它完美地工作,但是在一个应用程序中我试图得到像此
string temp = reader.TryGetValue("ColumnA", out licenseStatus) ? temp : string.Empty;
存储过程正在做这样的事情,
if @datafield = 1
return 1
else if @datafield = 2 AND @datafield2 = 3
return 0
else
return (SELECT ColumnA.table2 FROM table1 INNER JOIN table2 on table1.id and table2.id Where @datafield3 = 0)
现在我想将结果作为ColumnA的值返回,而不是发送“0”或“1”,因为我不允许对应用程序中的代码进行更改。
有可能吗?我根本无法对ColumnA值进行任何更改。
修改
我在我的问题中已经提到存储过程正在做什么 它假设要做但不使用我的代码,因为我返回1或 在某些时候0,我的代码没有得到它作为columnA所以它的设置 它是空的,我想返回0或1作为ColumnA的值,但同样 时间我不想在table2中更改columnA的值..
:)
答案 0 :(得分:0)
您可以使用CASE
select
case @datafield
when 1 then 1
when 2 then 0
when 3 then 0
else ColumnA
end as ColumnA
from ....
答案 1 :(得分: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)
如果它只是一个选择查询,那么它不会改变您的表格数据,而是会返回您想要的内容