Search

String / Date

루시와 엘라 찾기

SELECT ANIMAL_ID ,NAME ,SEX_UPON_INTAKE FROM ANIMAL_INS WHERE NAME IN ('Lucy','Ella','Pickle','Rogan','Sabrina','Mitty') ORDER BY ANIMAL_ID;
SQL
복사

이름에 el이 들어가는 동물 찾기

대소문자 구분 없이 검색하는 방법
lower()
upper()
SELECT ANIMAL_ID ,NAME FROM ANIMAL_INS WHERE LOWER(NAME) LIKE '%el%' AND ANIMAL_TYPE = 'Dog' ORDER BY NAME;
SQL
복사

중성화 여부 파악하기

CASE WHEN
SELECT ANIMAL_ID ,NAME ,CASE WHEN (SEX_UPON_INTAKE LIKE '%Neutered%' OR SEX_UPON_INTAKE LIKE '%Spayed%') THEN 'O' ELSE 'X' END AS 중성화 FROM ANIMAL_INS ORDER BY ANIMAL_ID;
SQL
복사
IF
SELECT ANIMAL_ID ,NAME ,IF(SEX_UPON_INTAKE LIKE '%Neutered%' OR SEX_UPON_INTAKE LIKE '%Spayed%','O','X') AS 중성화 FROM ANIMAL_INS ORDER BY ANIMAL_ID;
SQL
복사

DATETIME 에서 DATE로 형 변환

SELECT ANIMAL_ID ,NAME ,DATE_FORMAT(DATETIME,'%Y-%m-%d') AS 날짜 FROM ANIMAL_INS ORDER BY ANIMAL_ID;
SQL
복사

카테고리 별 상품 개수 구하기

INSTR(’문자열’,’추출문자’) : 해당 문자열에서 index를 추출
ex) SELECT INSTR(’안녕하세요’,’하세요’);
→ 3
SUBSTR(’문자열’,위치) : 해당 문자열의 위치부터 추출
ex) SELECT SUBSTR(’반갑습니다’,3);
→ 습니다
SUBSTRING(’문자열’,위치,길이) : 해당 문자열의 위치부터 길이까지 추출
ex) SELECT SUBSTRING(’공부합시다’,3,2);
→ 합시
SELECT SUBSTRING(PRODUCT_CODE,1,2) AS CATEGORY ,COUNT(DISTINCT PRODUCT_ID) AS PRODUCTS FROM PRODUCT GROUP BY SUBSTRING(PRODUCT_CODE,1,2) ORDER BY CATEGORY;
SQL
복사

조건별로 분류하여 주문상태 출력하기

SELECT ORDER_ID ,PRODUCT_ID ,DATE_FORMAT(OUT_DATE,'%Y-%m-%d') AS OUT_DATE ,CASE WHEN OUT_DATE <= '2022-05-01' THEN '출고완료' WHEN OUT_DATE > '2022-05-01' THEN '출고대기' ELSE '출고미정' END AS 출고여부 FROM FOOD_ORDER ORDER BY ORDER_ID;
SQL
복사

오랜 기간 보호한 동물(2)

DATEDIFF : 일 차이만 가져온다.
ex) DATEDIFF(날짜1,날짜2);
→ 날짜1 - 날짜2
TIMESTAMPDIFF : 차이를 연, 분기, 월, 주, 일, 시, 분, 초를 지정하여 가져올 때 사용한다.
ex) TIMESTAMPDIFF(단위, 날짜1, 날짜2);
- 단위 -
SECOND : 초
MINUTE : 분
HOUR : 시
WEEK : 주
MONTH : 월
QUARTER : 분기
YEAR : 연
SELECT A.ANIMAL_ID ,A.NAME FROM ANIMAL_INS A INNER JOIN ANIMAL_OUTS B ON A.ANIMAL_ID = B.ANIMAL_ID ORDER BY DATEDIFF(B.DATETIME,A.DATETIME) DESC LIMIT 2;
SQL
복사

취소되지 않은 진료 예약 조회하기

SELECT APNT_NO ,B.PT_NAME ,A.PT_NO ,A.MCDP_CD ,C.DR_NAME ,APNT_YMD FROM APPOINTMENT A INNER JOIN PATIENT B ON A.PT_NO = B.PT_NO INNER JOIN DOCTOR C ON A.MDDR_ID = C.DR_ID WHERE DATE_FORMAT(APNT_YMD,'%Y-%m-%d') = '2022-04-13' AND A.MCDP_CD = 'CS' AND APNT_CNCL_YN = 'N' ORDER BY APNT_YMD;
SQL
복사