临时SQL数据字段(Temporary SQL datafield)

2019-08-02 05:17发布

目前,我返回一个布尔值,为“1”或“0”或列的值,让说,一列在我的存储过程之一,但它完美的作品,在应用程序之一,我想获得这样的值

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的值,但在同一时间,我不希望在表2改变columnA的价值..

:)

Answer 1:

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)

如果它仅仅是一个选择查询,那么它不会改变你的表格数据,而它会回报你想要什么



Answer 2:

您可以使用CASE

select 
    case @datafield 
    when 1 then 1 
    when 2 then 0 
    when 3 then 0 
    else ColumnA 
    end as ColumnA
from ....


文章来源: Temporary SQL datafield