ホームページ  >  記事  >  データベース  >  使用時の場合

使用時の場合

王林
王林オリジナル
2019-09-23 13:14:1415872ブラウズ

使用時の場合

データベースのキーワードが実際にはif、else if、elseのような形式になっている場合、判定条件を取得する方法です

ストアドプロシージャで記述されるSQLの構文形式は、通常時に記述されるSQLと基本的に同じであり、case whenの使い方や呼び出し方も同様です。

最初の例:

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);

case when はクエリ結果に使用できるだけでなく、where 条件の後の判定条件としても使用できます。

この SQL には両方の状況が含まれています。もちろん、where 条件に select を追加せずに、形式を直接使用することもできます。例:

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;

メソッドが間違いなくもっと多い場合効率的。

注: case when は then および end と一緒に使用する必要があります。

もちろん、私のストアド プロシージャはこのように書いているわけではありません。今日、上司は「あまり責任を負わなくても、if と else の形式で書いてください」と言っていました。

ストアド プロシージャの if および else 形式は、フロントエンドおよびバックエンドで使用される if および else 形式とは少し異なります。会社には外部ネットワークがなく、純粋に手作りです。投稿しません。 Java コードをダウンロードし、ストアド プロシージャの一部を直接アップロードします。

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结束。

ここでの論理演算子は SQL 論理演算子、つまり and と or を使用していることに注意してください。

上記の「||」は、論理和ではなく、フィールドの後に文字列を追加していることに注意してください。

if の終わりの後に、現在の if の終わりを示すために必ず end if を追加してください。

推奨チュートリアル: mysql ビデオ チュートリアル

以上が使用時の場合の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。