**mysql과 mariadb는 문법이 같다.
1.mysql, mariadb에서는 ROWNUM을 지원하지 않기때문에
@을 통해 변수를 생성하여 사용한다.
변수의 초기화는 from절 , where절에서 사용한다
SELECT @ROWNUM :=ROWNUM+1 AS ROWNUM
FROM 테이블명, (SELECT @ROWNUM:=0) AS R
또는
WHERE절에서 초기화 후 사용
SELECT @ROWNUM:=@ROWNUM+1 AS rowNum
FROM 테이블명
WHERE (@ROWNUM:=0)=0;
[문자열 합치기] : Mysql에서는 CONCAT함수를 사용해야한다.
- SELECT CONCAT('a', 'b', 'c');
=> abc - 오라클에서는 파이프('||') 를 이용해서 문자열을 결합하면 된다.
[날짜포맷]
- 오라클 : TO_CHAR(변수명, 'YYYY-MM-DD HH:24:MI:SS')
마리아디비 : DATE_FORMAT(변수명, '%Y-%m-%d %H:%i:%p');
결과값 : 2021-08-11 17:33:43
DATE_FORMAT(변수명, '%Y-%m-%d %h:%i:%p');
일경우
결과값 : 2021-08-11 05:35:30(am,pm으로나옴)
SELECT DATE_FORMAT(now(), '%Y-%M-%D');
일경우
결과값 : 2021-August-11th
[DECODE, CASE]
DECODE 함수는 조건에 따라 데이터를 다른 값이나 컬럼값으로 추출할 수 있다.
특정 조건이 참/거짓일때 각각 다른 값을 부여한다.
SELECT DECODE (테이블명, 조건, 참일 때 출력 값, 거짓일때 출력 값) FROM 테이블명;
CASE
해당조건에 만족하는 결과값을 출력한다.
SELECT CASE WHEN 조건1 THEN 결과1
ELSE 외의 결과
END
FROM 테이블명;
'DataBase' 카테고리의 다른 글
[Oracle] tablespace를 user로 해놓으면 안됨. 반드시 tablespace 지정해야한다! 오라클 TABLESPACE 변경하는 법, 오라클 인덱스 테이블스키마 변경법 (0) | 2023.02.02 |
---|---|
[Oracle]ORA-01861: 리터럴이 형식 문자열과 일치하지 않음 (0) | 2022.08.17 |
[Oracle] ORA-00979: GROUP BY 표현식이 아닙니다 (0) | 2022.08.17 |
ORACLE TO_DATE 사용법, 다음날 DATE 조회하기 (0) | 2022.08.16 |
[오라클을 MYSQL로 바꾸기] oracle : NVL2는 maria/mysql 의 CASE 문과 같다 (0) | 2022.08.16 |