Ich habe den folgenden SQL Server-Code:SQL Server: Fall ohne eine Null-Rückkehr
declare @n_count_pr int, @n_count_err int, @v_out_pr varchar(100);
begin
set @n_count_pr = (select count (*) from table_PR)
set @n_count_err = (select count (*) from table_err)
if (@n_count_err > 0 AND @n_count_pr > 0)
set @v_out_pr = 'Output 1'
else if (@n_count_err > 0 AND @n_count_pr = 0)
set @v_out_pr = 'Output 2'
print @v_out_pr
end;
Es funktioniert völlig in Ordnung, aber ich brauche eine andere Struktur.
Ich brauche eine einfache Auswahl, die das gleiche tun.
Können Sie mir helfen?
In der oben genannten Prozedur habe ich nur zwei Ausgänge und sonst nichts. Wenn ein anderer Ausgang als Ausgang 1 und Ausgang 2 vorhanden ist, sollte er verworfen werden.
Es ist wie:
wenn ich einen dann Ausgang 1 sonst = wenn i = b den Ausgang 2
Aber ich habe nicht ein anderes, also jede andere Option i = c oder i = d, ist mir egal. Ich möchte diese Optionen verwerfen.
Wenn habe ich andere Optionen möchte ich dies tun würde:
if (@n_count_err > 0 AND @n_count_pr > 0)
set @v_out_pr = 'Output 1'
else if (@n_count_err > 0 AND @n_count_pr = 0)
set @v_out_pr = 'Output 2'
else
set @v_out_pr = 'any other option'
--Found eine Lösung :)
select bit from
(SELECT CASE
WHEN (SELECT COUNT (*) FROM TABLE_ERR) > 0 AND (SELECT COUNT (*) FROM TABLE_PR) > 0 THEN 'OUTPUT 1'
WHEN (SELECT COUNT (*) FROM TABLE_ERR) > 0 AND (SELECT COUNT (*) FROM TABLE_PR) = 0 THEN 'OUTPUT 2'
ELSE null
END as bit) Mytable
where bit is not null
Diese Seite ist für die Programmierung von Fragen. Wir sind kein Code-Übersetzungsdienst. Du machst das Übersetzen, wir versuchen (vielleicht) Hilfe zu reparieren, was auch immer du produziert hast. –