일련번호를 'K0001' 'K0002' 이런식으로 증가시켜야한다는 요청을 받고 고민에 빠졌다. 시퀀스 권한도 없어서 JAVA 혹은 SQL로만 해결해야하는데, SELECT해서 자바에서 처리를 하다보면 여러 사람이 동시에 작업할 경우 일련번호가 겹칠 수 있다고 생각했다. 쿼리로 MAX(SEQ) + 1을 해도 겹칠 수 있지 않을까 생각하지만 주어진 상황에선 최선이지 않나 생각했다. 1 SELECT NVL2(MAX(SEQ_NO), 'K'||LPAD(REPLACE(MAX(SEQ_NO), 'K') + 1, 7, '0'), 'K0001') FROM TEST; NVL2로 처음 값이 없을 경우(NULL) 'K0001'로 지정되도록 했다. MAX(SEQ_NO)를 통해 현재 중 가장 큰 일련번호를 가져온다. REPLACE로..
DB 공부 좀 하고 하고 싶은데, 간단하게 연습용으로 테스트해보고 싶은데, 툴 설치해서 루트 계정 생성 등등 자질구래한거 다 구찮아!! 할 땐, http://sqlfiddle.com/ SQL Fiddle | A tool for easy online testing and sharing of database problems and their solutions. Query Panel Use this panel to try to solve the problem with other SQL statements (SELECTs, etc...). Results will be displayed below. Share your queries by copying and pasting the URL that is genera..
연산자 우선순위1SELECT * FROM WORDS WHERE A = 1 AND (B = 1 OR B = 2);csAND가 OR 보다 우선순위가 높다. (AND > OR)OR 먼저 연산하고 싶으면 괄호를 쳐준다. NOT + 연산자1SELECT * FROM WORDS WHERE NOT (B = 1 OR B = 2);cs 수치형(INT), 문자열형(VARCHAR) 정렬 주의 수치형 문자열형 1 1 2 10 10 2 문자형태로 숫자를 저장하면 1부터 10까지 차례로 정렬되는 것이 아니라 문자 순서대로 정렬된다. NULL 값 정렬순서NULL 값을 가지는 행(row)은 가장 먼저 표시되거나 가장 나중에 표시 (데이터베이스 제품에 따라 기준 다름) NULL 값 연산 NULL + 1, 1 / NULL 등 어떤 연산을..
1SELECT * FROM EMP WHERE DEPTNO20 AND JOB'SALESMAN';csDEPTNO(부서번호)가 20이 아니고 JOB(직무)가 세일즈맨이 아닌 사람들을 SELECT 하면 다음과 같다. 1SELECT * FROM EMP WHERE DEPTNO = 10 OR DEPTNO = 30 AND JOB = 'MANAGER' OR JOB = 'CLERK';csDEPTNO(부서번호)가 10 또는 30이고 JOB(직무)가 매니저 또는 직원인 사람들을 SELECT 하면 다음과 같다. 원래 의도는 위 쿼리에서 JOB이 PRESIDENT인 사람을 제외하고 결과가 같도록 하는거였는데 다르다!DEPT가 10 또는 30인 사람만 나와야하는데 20인 사람이 툭 튀어나온 것이다.왜 그럴까 ? AND는 OR에 비..
SELECT ...CASE WHEN 조건 ... THEN 결과 ENDFROM 테이블 예제를 통해 확인하는게 이해가 빠르다! EMP 테이블의 값은 위와 같다.여기에 CASE WHEN 문을 적용해봐야겠다! DEPTNO 컬럼의 번호에 부서명을 정해주고 JOB으로 이름을 바꿨다 (DEPTNM으로 할걸...)해당 번호들이 조건에 맞는 결과 값으로 바뀐 것을 볼 수 있다!(직접 해볼 때 WHERE랑 헷갈려서 FROM 테이블 다음에 적으려했다...문법 자체는 어렵지 않은데 위치와 활용법을 알아두는게 좋을거 같다!) 응용(?)각 부서별로 인원을 구해서 오름차순으로 정렬했다 여기에 CASE문을 살짝 섞어서 20번 부서만 인원을 구할 수도 있다!잘만 활용하면 유용할거 같은데, SQL만 잡고 살지 않아서 또 까먹지 않을까 ..
https://stackoverflow.com/questions/181272/what-does-select-count1-from-table-name-on-any-database-tables-meanhttp://ggmouse.tistory.com/156 위에는 스택오버플로우 (당근 영어!)아래는 티스토리 블로그 (당근 한글!)자세히 나와있다! 나중에라도 봐야겠다. EMP 테이블의 내용은 다음과 같다.(COMM 컬럼에 NULL 값이 잔뜩 들어있는게 포인트!) COUNT(1)은 EMP의 전체 ROW 수를 보여준다. COUNT(*)도 EMP의 전체 ROW 수를 보여준다. NULL 값이 들어있는 COMM 컬럼을 지정해 COUNT 했을 때는 NULL 값을 제외한 수를 보여준다! (의도한건 아닌데 점점 캡처 사이즈가..
- Total
- Today
- Yesterday
- 예매 알림
- 다음 맵 api
- 더 나은 내일
- 쇠막대기
- cgv
- 124 나라의 숫자
- 카카오인턴
- 스프링 부트
- 최솟값
- FrogJmp
- 문자열 내 마음대로 정렬하기
- java
- 알고리즘
- Spring
- 기능개발
- 안드로이드 스튜디오
- 자바
- json
- 맵 api
- 노션트렐로광고X
- AWS
- 완주하지 못한 선수
- 파이팅코리아
- 객체지향과 디자인패턴
- codility
- 텔레그램
- 타겟 넘버
- K번째수
- 프로그래머스
- API
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |