У меня есть запрос SQL сервера следующим образом в порядке хранения с параметрами @firstId и @secondIdЗаменить следующий запрос в SQLite
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 с заявлениями о случаях, как это предлагается в документации sqlite, но пока не в состоянии добиться того же. Я хочу достичь чего-то вроде ниже или лучшего запроса.
CASE WHEN @firstId = '' THEN (CHOOSE FIRST SELECT STATEMENT) ELSE (CHOOSE SECOND SELECT STATEMENT) END
Я подумал о расщеплении оригинального SQL-запроса на два отдельных заявления в SQLite и вызвать соответствующий запрос на основании состояния обрабатываются в C# код базового файла, как показано ниже, но не уверен, что это хорошая практика.
if(firstId == string.empty)
{
//call the first select statement
}
else
{
//call the second select statement
}
Я не хочу разделить процедуру хранения на два отдельных запроса. Любая помощь приветствуется.
Очевидным ответом является «разделение хранимой процедуры на два отдельных запроса». Почему бы вам не сделать это? –