替换 sqlite 中的以下查询

本文关键字:查询 sqlite 替换 | 更新日期: 2023-09-27 17:56:44

我在存储过程中有一个 sql 服务器查询,如下所示,其中包含参数 @firstId 和 @secondId

IF @firstId = ''
begin
SELECT DISTINCT x, y =
FROM t1
LEFT OUTER JOIN t2 ON t1.id = t2.id AND t2.id = @secondId
ORDER BY t1.somecolumn
END
ELSE
BEGIN
SELECT DISTINCT x, y =
FROM t1
LEFT OUTER JOIN t2 ON t1.id = t2.id AND t2.id = @secondId
AND t1.id = @firstId
ORDER BY t1.somecolumn
END
我对 sqlite

很陌生,并尝试按照 sqlite 文档中的建议使用 case 语句在 sqlite 中编写上述查询,但到目前为止还无法实现相同的目标。我想实现如下所示或更好的查询。

CASE WHEN @firstId = '' THEN (CHOOSE FIRST SELECT STATEMENT) ELSE (CHOOSE SECOND SELECT STATEMENT) END

我想在 sqlite 中将原始 sql 查询拆分为两个 select 语句,并根据 c# 代码基础文件中处理的条件调用相应的查询,如下所示,但不确定这是否是好的做法。

if(firstId == string.empty)
{
//call the first select statement
}
else
{
//call the second select statement
}

我不想将存储过程拆分为两个单独的查询。任何帮助,不胜感激。

替换 sqlite 中的以下查询

你可以一口气做完。以上 2 个语句相当于:

SELECT DISTINCT x, y
FROM t1
LEFT OUTER JOIN t2 ON t1.id = t2.id AND t2.id = @secondId
                      AND (t1.id = @firstId OR  @firstId = '')
ORDER BY t1.somecolumn