Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# sql中的if-else条件_C#_Sql_Sql Server - Fatal编程技术网

C# sql中的if-else条件

C# sql中的if-else条件,c#,sql,sql-server,C#,Sql,Sql Server,我想编写一个sql查询,它可以: 如果此查询从表1中选择X,其中X='value1'的结果返回1,如果从表2中选择X,其中X='value2'的结果返回2,则返回0 谢谢一种方法是选择和案例: 虽然这不是一个有效的查询,也不是使用这样的查询的最佳实践,但它应该可以工作 select case when exists (select X from table1 where x = 'value1') then 1 when exists (select x from table

我想编写一个sql查询,它可以:

如果此查询从表1中选择X,其中X='value1'的结果返回1,如果从表2中选择X,其中X='value2'的结果返回2,则返回0

谢谢

一种方法是选择和案例:


虽然这不是一个有效的查询,也不是使用这样的查询的最佳实践,但它应该可以工作

select 
    case when exists (select X from table1 where x = 'value1') then 1 
    when exists (select x from table2 where x = 'value2') then 2 
    else 0 
end;

当查询很短时,选择case是解决这种情况的更好方法。但当查询较长且复杂时,我喜欢使用用户定义的函数,如:

如果dbo.QueryExecution为NULL -做点什么 其他的 -做点什么

dbo.QueryExecution可以执行您的查询 从表1中选择X,其中X='value1'


通过这种方式,测试和维护查询更容易,至少对我来说更容易。

是否可以使用变量实现:

DECLARE @FLAG INT = 0;

SELECT @FLAG = 1 FROM table1 WHERE x = 'value1'

IF @FLAG = 0 
BEGIN
    SELECT @FLAG = 2 FROM table2 WHERE x = 'value2'
END

SELECT @FLAG

@FLAG变量将保存值0、1或2,因为表包含或不包含数据。如果第一个选择不包含数据,则运行第二个选择,如果没有返回数据,则返回0默认@标志值

将关于C语言中数据集读取的问题作为单独的问题发布。或者,更恰当地说,搜索大量现有的答案和已经涵盖这些内容的网站。@Yuck好的,我将编辑我的问题,谢谢谢谢谢谢,但是我如何阅读c中的“Then”部分?如何访问它?假设您要执行查询select 1;你知道怎么做吗?如果您这样做了,那么您也知道如何从C运行Gordon的查询。它使用case的事实是不相关的;它们都只是返回单个整数的查询。如果您没有,那么您应该在C中查找关于数据库访问的教程。
DECLARE @FLAG INT = 0;

SELECT @FLAG = 1 FROM table1 WHERE x = 'value1'

IF @FLAG = 0 
BEGIN
    SELECT @FLAG = 2 FROM table2 WHERE x = 'value2'
END

SELECT @FLAG