오라클은 12버전부터 offset과 limit가 추가됨 (내가 작업하는 환경은 11버전이라,,,,직접 구현해야한다.. 업데이트 해주세여 ㅠㅠㅠㅠ헝)
<12 이전 버전>
이렇게 한 번 더 감싸주는 이유는 Between보다 빠른 검색을 위해. 해당 범위만큼만 번호를 매겨서 제공하는 방식인셈. between은 전부 번호 지정 후 제공
SELECT *
FROM (
SELECT a.*, ROWNUM AS "rnum"
FROM (
<사용자 정의 쿼리 QUERY>
) a
WHERE ROWNUM <= end_number
) a
WHERE rnum >= start_number
한번 더 감싸주는 상세 이유 : https://okky.kr/article/282926
<12 이후 버전>
SELECT *
FROM table_name
ORDER BY column_name
OFFSET 20 ROWS FETCH NEXT 10 ROWS ONLY;
문자열을 합쳐서 보여주는 경우는 연결 연산자 || 나 연결 함수 CONCAT을 사용
SELECT first_name||family_name AS fullName FROM emp
SELECT CONCAT(first_name,family_name) AS fullName FROM emp
하지만 단 두개의 문자열에 대해서만 연결이 가능하다는 단점.
여기서 3개 이상의 문자열을 합치려면 CONCAT함수를 CONCAT 함수로 감싸줘야한다.
SELECT CONCAT(CONCAT(first_name,family_name),salary) AS mix FROM emp
NVL(expr1, expr2) 함수는 expr1이 null 이 아니면 expr1을 그대로 반환하고, null 이면 expr2을 반환
오라클에서 길이가 없는 문자열(aka empty string, white space, blank)은 null 로 취급된다.
즉, 필드에 들어있는 값이나 '' 문자 또는 함수가 반환하는 값이 길이가 없는 문자열이라면 null 로 취급된다는 것
출처
https://yjacket.tistory.com/60
++ count(*) == count(1) 과 같은 뜻
'DataBase' 카테고리의 다른 글
[HackerRank] Ollivander's Inventory (0) | 2020.07.12 |
---|---|
[HackerRank] Symmetric Paris (0) | 2020.06.10 |
관계형데이터베이스(RDBMS)별Merge 정리 (0) | 2020.03.13 |
INSERT문에 SELECT 가능! (0) | 2019.06.02 |
[MySQL] 페이징 시 쿼리 LIMIT, OFFSET (0) | 2019.06.02 |
댓글