oracle에서
LEFT('hello-world',INSTR('hello-world' '-', -1) -1) > 오라클 변환
LEFT, 3 > SUBSTR(a, 1, 3)
어떻게해야하나요?
LEFT, -1 <== 이거에 대응하는 SUBSTR 사용방법을 말씀하시는 걸까요?
mysql에서 left함수에서 음수값이면 empty string을 출력하네요.
mysql> select left('hello world', -1 );
+--------------------------+
| left('hello world', -1 ) |
+--------------------------+
| |
+--------------------------+
1 row in set (0.002 sec)
아래 문서보니 oracle의 substr에서는 length값이 1보다 작으면 null 값을 출력한답니다.
https://docs.oracle.com/database/121/SQLRF/functions196.htm#SQLRF06114
SQL> select substr('hello world', 1, 0) from dual;
S
-
안녕하세요 만약
LEFT('hello-world',INSTR('hello-world' '-', -1) -1)
어떻게 변환해야하나요?
-- 오타 난 듯 하네요?
MySQL(오류) : LEFT('hello-world', INSTR('hello-world' '-', -1) -1)
MySQL(수정) : LEFT('hello-world', INSTR('hello-world', '-') - 1) --> hello
Oracle : SUBSTR('hello-world', 1, INSTR('hello-world', '-') - 1) --> hello
아 잘못적었네요 ㅜ
LEFT('hello-world', INSTR('hello-world', '-', -1) -1) 입니다
말씀해주신걸로 하면
SUBSTR('hello-world', 1, INSTR('hello-world', '-', -1) -1) 로 하면되는것인가요?
INSTR 의 인수의 수는
Oracle 에서는 3개이지만, MySQL 에서는 2개만 가능한 걸로 알고 있습니다.
INSTR('hello-world', '-', -1) 이 구문은 MySQL 에서는 동작하지 않을 텐데요?
"-" 를 기준으로 앞부분을 자르는 것이 목적이라면?
INSTR('hello-world', '-') 이 맞습니다.