IT/DataBase59 [MSQL] ROWNUM 역순으로 계산하는 SQL 기법 목차샘플 쿼리WITH TB1 AS ( SELECT 1 AS SEQ, 'user' AS SEARCH_TYPE, '홍길동' AS SEARCH_NM, '2025-01-01 12:00:00' AS CREATED_AT UNION ALL SELECT 2 AS SEQ, 'bussiness' AS SEARCH_TYPE, 'ABC Corp' AS SEARCH_NM, '2025-01-02 14:00:00' AS CREATED_AT UNION ALL SELECT 3 AS SEQ, 'user' AS SEARCH_TYPE, '이순신' AS SEARCH_NM, '2025-01-01 09:00:00' AS CREATED_AT),TB2 AS ( SELECT 1 AS MEMB_ID, '홍길동' AS N.. IT/DataBase 2025. 1. 19. [SQL] 백분율 예제 목차 SELECT 5 / 30 * 100 FROM dual ; 1. 백분율 계산식 구하려는 컬럼을 전체 컬럼개수로 나눈 뒤 100을 곱한다. 실전 SQL(cubrid 사용) SELECT CASE WHEN A.HOUSE_TY_SECD = '1' THEN '다가구' WHEN A.HOUSE_TY_SECD = '2' THEN '빌라' WHEN A.HOUSE_TY_SECD = '3' THEN '아파트' WHEN A.HOUSE_TY_SECD = '4' THEN '오피스텔' WHEN A.HOUSE_TY_SECD = '5' THEN '단독' WHEN A.HOUSE_TY_SECD = '6' THEN '다세대' WHEN A.HOUSE_TY_SECD = '7' THEN '연립' WHEN A.HOUSE_TY_SECD = '8.. IT/DataBase 2024. 3. 20. [cubrid] 서브 쿼리 별칭 사용 시 주의점 cubrid 서브쿼리 별칭 사용 시 LIST는 예약어니까 사용하지 말자아래 쿼리는 Oracle DBMS에서는 정상 동작하지만 cubrid에서는 syntax error가 발생한다.SELECT LIST.* FROM ( SELECT EMP_SNO , EMP_ID , EMP_EMAIL , EMP_HP FROM EMP_INFO_L ) LIST;삽질을 꽤나 했는데 큐브리드 공식문서 찾아보니 LIST가 예약어로 되어있다. [linux] 리눅스에 cubrid 설치(feat. cubrid 11.2 ver)지난주 리눅스 서버에 cubrid DBMS를 설치 했기에 메모한다. 설치할 때 캡처를 하지 못한 관계로 기억을 더듬어 프로세스 위주로 기록한다. 1. 리눅스 서버에 jdk를 설치/환경변.. IT/DataBase 2024. 1. 13. [Oracle] N개월후까지 날짜 구하기 (feat. Connect by level) WITH calendar AS ( SELECT TO_CHAR(TO_DATE('20231201') + LEVEL - 1, 'YYYYMMDD') AS dt FROM dual CONNECT BY LEVEL IT/DataBase 2023. 12. 3. [DBMS] N:M(다대다) 관계일 때 매핑 테이블로 관계 형성 하나의 메뉴는 여러개의 유저그룹과 연결될 수 있고 하나의 유저그룹도 여러개의 메뉴정보와 연결될 수 있기에 다대다 관계라고 할 수 있다.(회원과 유저그룹도 마찬가지다) 예를 들어 회원관리라는 메뉴를 A그룹도 가질 수 있고 B그룹도 가질 수 있다. A그룹은 회원관리 뿐 아니라 시스템관리의 메뉴와도 연결될 수 있다. 관계형 데이터베이스에서는 다대다 관계를 풀어내기 위해 중간에 매핑 테이블을 둬서 1:N, N:1로 관계를 품 매핑 테이블은 연결시키는 테이들의 PK만을 가지고 있고 이를 가지고 각 테이블에서 서로 참조할 수 있다. 위의 관계에서 회원이 자신과 연결된 메뉴정보를 알고 싶으면 아래처럼 쿼리를 작성하면 된다. /* 사용자와 매핑된 메뉴 조회 */ WITH UserGroupCodes AS ( /* 유저그.. IT/DataBase 2023. 9. 24. [Oracle] ORDER BY 시 조건 처리 회원 테이블 정렬 시 아래처럼 조건으로 순위를 부여할 수 있음(다양하게 응용 가능) /* 사용자 아이디가 'l'로 시작하는 데이터를 우선순위로 한 다음 이름 오름차순 정렬 */ SELECT ROW_NUMBER() OVER( ORDER BY CASE WHEN USER_ID LIKE 'l%' THEN 1 ELSE 2 END , A.USER_NAME ) AS rn , A.USER_ID , A.USER_NAME , A.USER_EMAIL FROM USER_INFO A ; IT/DataBase 2023. 9. 24. [Oracle] 가장 마지막 row 조회(feat. partition by) 1:N의 관계에서 N쪽의 데이터가 여러 row가 있을 경우 가장 마지막 row만 조회 SELECT EMP_ID /* 아이디 */ , EMP_POSITION_CD /* 직급코드 */ , EMP_ROLE_CD /* 직책코드 */ FROM ( SELECT EMP_ID , EMP_POSITION_CD , EMP_ROLE_CD , ROW_NUMBER() OVER(PARTITION BY EMP_ID ORDER BY H_SNO DESC) AS RowIdx FROM EMP_INFO_HISTORY ) WHERE RowIdx = 1 IT/DataBase 2023. 8. 7. [MongoDB] 몽고DB 6.0.x 버전 mongo 찾지 못하는 경우... 설치 환경: MongoDB 6.0.8 몽고DB 설치 후 환경변수까지 잡아 줬는데 mongo 명령어를 찾지 못했다. 구글링 해보니 mongo.exe가 없어져서 mongosh를 다운받아서 사용하라고 한다. 위 사이트에서 sh를 다운로드 후 mongosh.exe와 dll파일을 몽고DB 설치 경로/bin에 복붙 한 다음 cmd에서 "mongosh"를 입력하면 잘된다.(환경변수 세팅 되어 있어야 함) 참조: https://stackoverflow.com/questions/73081708/mongo-exe-not-installed-in-version-6-0-0 mongo.exe not installed in Version 6.0.0 I installed MongoDB community Server from this.. IT/DataBase 2023. 7. 17. [Oracle] 해당월말일 ~ 익월 말일까지 조회 SELECT TO_CHAR(SYSDATE,'YYYYMM') || LPAD(LEVEL, 2, '0') AS dt FROM dual CONNECT BY LEVEL IT/DataBase 2023. 5. 30. [Oracle] 재귀 복사 더미 데이터를 만들기 위해 테이블에 있는 데이터만큼 복사 ex) BOARD 테이블에 1개의 row만 있을 경우 아래 쿼리를 실행하면 1개가 더 생기고 다시 실행하면 4개가 생기고 다시 실행하면 8개가 생기고 계속 테이블에 저장된 개수만큼 배로 늘어난다. INSERT INTO BOARD (BOARD_NO, TITLE, CONTENT, WRITER) (SELECT BOARD_NO_SEQ.NEXTVAL, TITLE, CONTENT, WRITER FROM BOARD); IT/DataBase 2023. 5. 7. 이전 1 2 3 4 ··· 6 다음