Mit dem Ergebnis einer Unterabfrage in einen CASE-Ausdruck mit T-SQL
Schreibe ich eine Abfrage, mit der einige Ausdrücke und es gibt Helfer-Daten Spalten, die mir helfen, festzustellen, ob oder nicht eine bestimmte Aktion erforderlich ist. Ich würde gerne wissen, ob ich irgendwie mit dem Ergebnis einer Unterabfrage, wie die Ausgabe ohne die gleiche Abfrage zweimal (zwischen WHEN (subquery) THEN
und wie das Ergebnis nach THEN
)
Dummy code unten beschreibt, was ich bin nach. Kann das getan werden? Ich bin der Abfrage einer MS2005 SQL-Datenbank.
SELECT 'Hello StackOverflow'
,'Thanks for reading this question'
,CASE
WHEN
(
SELECT count(*)
FROM sometable
WHERE condition = 1
AND somethingelse = 'value'
) > 0 THEN
-- run the query again to get the number of rows
(
SELECT count(*)
FROM sometable
WHERE condition = 1
AND somethingelse = 'value'
)
ELSE 0
END
SELECT 'Hello StackOverflow'
,'Thanks for reading this question'
,CASE
WHEN
(
SELECT count(*)
FROM sometable
WHERE condition = 1
AND somethingelse = 'value'
) AS subqry_count > 0 THEN
-- use the subqry_count, which fails... "Incorrect syntax near the keyword 'AS'"
subqry_count
ELSE 0
END
Ich bin mir nicht sicher, ob ich übersehen, etwas wichtiges, aber wenn der Ausgang ist entweder die Anzahl oder 0, warum nicht einfach die Ausgabe der Zählung, die 0 ist in jedem Fall, wenn es keine übereinstimmenden Zeilen...?
Du hast vollkommen Recht @MartinParkin. Ich war ein wenig stecken in der
keine Probleme - ich habe eine Antwort, die Ihnen erlauben, verwenden Sie die Abfrage in der Art und Weise, die Sie wollte, wie gut. Jetzt können Sie es tun oder so 🙂
Ich habe akzeptiert Ihre Antwort. Nichtsdestotrotz ist es jetzt viel leichter. Nochmals vielen Dank. Habt einen schönen Tag
Du hast vollkommen Recht @MartinParkin. Ich war ein wenig stecken in der
CASE
Lösung, weil ich wollte, um die Ausgabe etwas wie No Action Required
. Aber 0 wird das gut machen. Danke, dass es dumm und einfach 😉keine Probleme - ich habe eine Antwort, die Ihnen erlauben, verwenden Sie die Abfrage in der Art und Weise, die Sie wollte, wie gut. Jetzt können Sie es tun oder so 🙂
Ich habe akzeptiert Ihre Antwort. Nichtsdestotrotz ist es jetzt viel leichter. Nochmals vielen Dank. Habt einen schönen Tag
InformationsquelleAutor Ben | 2015-06-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie einfach die Unterabfrage als Quelle, die Sie auswählen aus:
Als beiseite, wenn Sie sich nur noch zu 0 zurück, wenn die Ausgabe von
COUNT
0 ist, dann Sie nicht sogar brauchen, um eineCASE
- Anweisung.InformationsquelleAutor Martin