데이터베이스의 키워드가 실제로 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;
이 형식에서는 사례를 직접 사용하는 것이 확실히 더 효율적입니다.
참고: 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를 사용합니다.
위에 쓰여진 "||"는 논리적 OR이 아닌 필드 뒤에 문자열을 추가하는 것입니다.
if 끝 뒤에는 현재 if의 끝을 나타내기 위해 end if를 추가해야 합니다.
추천 튜토리얼: mysql 비디오 튜토리얼
위 내용은 사용하는 경우의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!