💻 하나씩 차곡차곡/프로그래머스 (SQL)
-
[SQL/Oracle] WHERE 1 = 1 사용하는 이유, 사용하지 말아야 하는 이유💻 하나씩 차곡차곡/프로그래머스 (SQL) 2024. 1. 31. 20:51
어떤 선배 개발자는 WHERE 1 = 1 사용해도 된다고 하고 어떤 개발자는 지양해야 한다고 말한다. 도대체 진실은 뭘까? [WHERE 1 = 1 을 사용하는 이유] 1. 쿼리 짤 때 편하다 여러 and 조건들을 넣었다가 뺐다가 해야 할 경우가 많은데 아예 조건절에 where 1 = 1 을 넣고 아래 and 조건만 주석처리 혹은 추가하면서 작업하면 되니까 쿼리 짤 때 솔직히 편하다. 2. 동적 쿼리문을 만들 때 편하다 동적으로 조건을 가져와 동적 쿼리문을 만들 때 어떤 컬럼이 조건으로 와도 무조건 AND 조건으로 만 붙이면 되니까! 동적 쿼리문을 짤 때도 편함! 3. 실행계획에 최적화 됨! 이건 검색해보면서 알게 된건데 대부분의 데이터베이스 서버는 실행 계획을 최적화 할 때, 쿼리의 WHERE 절을 분석..
-
[String, Date] 취소되지 않은 진료 예약 조회하기 (Oracle)💻 하나씩 차곡차곡/프로그래머스 (SQL) 2023. 6. 30. 12:11
SELECT B.APNT_NO , A.PT_NAME , A.PT_NO , B.MCDP_CD , C.DR_NAME , B.APNT_YMD FROM PATIENT A, APPOINTMENT B, DOCTOR C WHERE A.PT_NO = B.PT_NO AND C.DR_ID = B.MDDR_ID AND B.MCDP_CD = 'CS' AND TO_CHAR(B.APNT_YMD, 'YYYY-MM-DD') = '2022-04-13' AND B.APNT_CNCL_YN = 'N' ORDER BY B.APNT_YMD ;
-
[String, Date] 자동차 대여 기록 별 대여 금액 구하기 (Oracle)💻 하나씩 차곡차곡/프로그래머스 (SQL) 2023. 6. 29. 12:33
WITH HIST AS ( SELECT B.HISTORY_ID AS HISTORY_ID , A.CAR_ID AS CAR_ID , A.CAR_TYPE AS CAR_TYPE , A.DAILY_FEE AS DAILY_FEE , B.DURATION AS DURATION , CASE WHEN B.DURATION < 7 THEN '' ELSE CASE WHEN B.DURATION < 30 THEN '7일 이상' ELSE CASE WHEN B.DURATION < 90 THEN '30일 이상' ELSE '90일 이상' END END END AS DURATION_TYPE FROM CAR_RENTAL_COMPANY_CAR A , (SELECT HISTORY_ID , CAR_ID , END_DATE - START_DATE ..
-
[String, Date] 대여 기록이 존재하는 자동차 리스트 구하기 (Oracle)💻 하나씩 차곡차곡/프로그래머스 (SQL) 2023. 6. 28. 11:59
SELECT DISTINCT A.CAR_ID FROM CAR_RENTAL_COMPANY_CAR A, CAR_RENTAL_COMPANY_RENTAL_HISTORY B WHERE A.CAR_ID = B.CAR_ID AND A.CAR_TYPE = '세단' AND TO_CHAR(B.START_DATE, 'YYYY-MM') = '2022-10' ORDER BY A.CAR_ID DESC
-
[String, Date] 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 (Oracle)💻 하나씩 차곡차곡/프로그래머스 (SQL) 2023. 6. 27. 12:15
SELECT '/home/grep/src/' || B.BOARD_ID || '/' || B.FILE_ID || B.FILE_NAME || B.FILE_EXT AS FILE_PATH FROM (SELECT * FROM (SELECT * FROM USED_GOODS_BOARD ORDER BY VIEWS DESC ) WHERE ROWNUM = 1 ) A, USED_GOODS_FILE B WHERE A.BOARD_ID = B.BOARD_ID ORDER BY B.FILE_ID DESC;
-
[String, Date] 조건에 맞는 사용자 정보 조회하기 (Oracle)💻 하나씩 차곡차곡/프로그래머스 (SQL) 2023. 6. 23. 12:30
SELECT USER_ID , NICKNAME , (CITY || ' ' || STREET_ADDRESS1 || ' ' || STREET_ADDRESS2) AS 전체주소 , CASE WHEN LENGTH(TLNO) = 11 THEN SUBSTR(TLNO,0,3) || '-' || SUBSTR(TLNO,4,4) || '-' || SUBSTR(TLNO,8,4) END AS 전화번호 FROM USED_GOODS_USER WHERE USER_ID IN ( SELECT B.USER_ID FROM USED_GOODS_BOARD A, USED_GOODS_USER B WHERE A.WRITER_ID = B.USER_ID GROUP BY B.USER_ID HAVING COUNT(*) >=3 ) ORDER BY USER_..