Heim  >  Artikel  >  Datenbank  >  Fall bei Verwendung

Fall bei Verwendung

王林
王林Original
2019-09-23 13:14:1415919Durchsuche

Fall bei Verwendung

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn