SELECT *
FROM (SELECT ROW_NUMBER() OVER (ORDER BY DATE) AS ROW, *
FROM TEST_TABLE LIMIT 10) T;
-- 짝수번째 행만 조회하는 쿼리
SELECT *
FROM (SELECT ROW_NUMBER() OVER (ORDER BY DATE) AS ROW, *
FROM TEST_TABLE LIMIT 10) T
WHERE ROW%2 = 0;
SELECT
product_id,
product_name,
group_id,
ROW_NUMBER () OVER (ORDER BY product_id)
FROM
products;
-- split_part(컬럼,자르고자하는 문자, 인덱스)
-- ex
select split_part(tel,'-',4)
from test
-- test 테이블의 tel 컬럼에서 - 문자로 자른 후 4번째에 있는 데이터를 출력 (index는 0이 아닌 1부터 시작)
update 테이블이름 set
year = split_part(date::TEXT, '-', 1)::SMALLINT
, month=split_part(date::TEXT, '-', 2)::SMALLINT
-- concat
SELECT employee_id,first_name,last_name,
concat(first_name,'-',last_name) "Name of the Employee"
FROM employees
WHERE department_id=100;
SELECT *
, col_1 || ', ' || col_2 AS db_name
, id || ' : ' || col_2 AS db_id
FROM char_type_test;
-- (3) CONCAT_WS : CONCAT With Separator
-- : CONCAT_WS(separator, str_1, str_2, ...);
SELECT *
, CONCAT_WS(', ', col_1, col_2) AS db_name_3
, CONCAT_WS(' : ', id, col_2) AS db_id_3
FROM char_type_test;
to가 절대경로가 아니면 절대경로를 찾을 때까지from아규먼트들을 우측에서 좌측의 순서로 앞에 이어붙힌다.모든from경로를 사용한 후에도 절대경로를 찾지 못하면 현재 워킹 디렉토리를 사용한다. 최종 경로는 정규화되고 경로가 루트 디렉토리로 처리되지 않는한 마지막 슬래시는 제거한다. 문자열이 아닌 아규먼트는 무시한다.
이는 쉘에서cd명령어를 순서대로 실행한 것과 같다.
path.resolve('foo/bar', '/tmp/file/', '..', 'a/../subfile')
//-- 이는 다음과 비슷하다.:
cd foo/bar
cd /tmp/file/
cd ..
cd a/../subfile
pwd
//--다른 경로라 존재할 필요가 없거나 파일일 수도 있다는 점만이 다르다.
path.resolve('/foo/bar', './baz')
// returns
'/foo/bar/baz'
path.resolve('/foo/bar', '/tmp/file/')
// returns
'/tmp/file'
path.resolve('wwwroot', 'static_files/png/', '../gif/image.gif')
// if currently in /home/myself/node, it returns
'/home/myself/node/wwwroot/static_files/gif/image.gif'