Der Fall, wenn das Schlüsselwort der Datenbank tatsächlich ein Format ist, das if, else if, else ähnelt, was eine Möglichkeit darstellt, Beurteilungsbedingungen zu erhalten .
Das Syntaxformat von SQL, das in gespeicherten Prozeduren geschrieben wird, ist grundsätzlich das gleiche wie das von SQL, das im täglichen Leben geschrieben wird, und die Verwendung und der Aufruf von case when sind ebenfalls gleich.
Erstes Beispiel:
select qzh from ywda_swjg_qzh_dz where swjg = ( select case when substr('11101823000'),0,7) = '1110182' then substr('11101960000',0,8) || '000' else substr('1110196000',0,7) || '0000' end swjgdm from ywda_swjg_qzh_dz where a.swjg_dm = b.swjg_dm);
Fall, wenn er nicht nur in den Abfrageergebnissen verwendet werden kann, sondern auch als Beurteilungsbedingung nach der Where-Bedingung verwendet werden kann .
Diese SQL deckt beide Situationen ab. Natürlich können wir das Format auch direkt verwenden, ohne select zur Where-Bedingung hinzuzufügen, wie zum Beispiel:
select qzh from ywda_swjg_qzh_dz where swjg = case when substr('11101823000'),0,7) = '1110182' then substr('11101960000',0,8) || '000' else substr('1110196000',0,7) || '0000' end;
Der Fall, wenn die Methode definitiv mehr ist effizient.
Hinweis: case when muss mit then und end verwendet werden.
Natürlich ist meine gespeicherte Prozedur nicht so geschrieben. Heute hat der Chef gesagt, dass Sie nicht zu verantwortungsbewusst sein müssen, schreiben Sie es einfach im Format „if“ und „else“.
Die if- und else-Formate der gespeicherten Prozedur unterscheiden sich ein wenig von den if- und else-Formaten, die im Front- und Backend verwendet werden. Das Unternehmen verfügt nicht über ein externes Netzwerk und wird nicht von Hand erstellt Veröffentlichen Sie den Java-Code und veröffentlichen Sie direkt einen Teil der gespeicherten Prozedur.
if substr(AVC_QXSWJG,0,8) = '11100006' or substr(AVC_QXSWJG,0,7) = '1110182' then select qzh into avc_qch from ywda_swjg_qzh_dz where swjg_dm = substr(avc_qxswjg,0,8) || '000'; elsif 条件(不加括号) then ................................sql省略......................................... else .................................sql省略....................................... end if; sql结束。
Beachten Sie, dass die logischen Operatoren hier logische SQL-Operatoren verwenden, also und und oder.
Das oben geschriebene „||“ hängt eine Zeichenfolge nach dem Feld an, kein logisches ODER, bitte beachten Sie.
Nach dem Ende von if müssen Sie unbedingt end if hinzufügen, um das Ende des aktuellen If anzuzeigen.
Empfohlenes Tutorial: MySQL-Video-Tutorial
Das obige ist der detaillierte Inhalt vonFall bei Verwendung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!