mysql 질문입니다 left 0 5 1,986

by 생택쥐포도 [MySQL] [2023.02.21 08:10:40]


oracle에서

LEFT('hello-world',INSTR('hello-world' '-', -1) -1) > 오라클 변환

LEFT, 3 > SUBSTR(a, 1, 3) 

어떻게해야하나요?

 

by pajama [2023.02.21 08:45:05]

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
-

 


by 생택쥐포도 [2023.02.21 09:10:25]

안녕하세요 만약

LEFT('hello-world',INSTR('hello-world' '-', -1) -1)

어떻게 변환해야하나요?


by 마농 [2023.02.21 09:18:31]
-- 오타 난 듯 하네요?
 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

 


by 생택쥐포도 [2023.02.21 09:28:53]

아 잘못적었네요 ㅜ

 

LEFT('hello-world', INSTR('hello-world', '-', -1) -1) 입니다

말씀해주신걸로 하면

SUBSTR('hello-world', 1, INSTR('hello-world', '-', -1) -1) 로 하면되는것인가요?


by 마농 [2023.02.21 11:08:53]

INSTR 의 인수의 수는
Oracle 에서는 3개이지만, MySQL 에서는 2개만 가능한 걸로 알고 있습니다.
INSTR('hello-world', '-', -1) 이 구문은 MySQL 에서는 동작하지 않을 텐데요?
"-" 를 기준으로 앞부분을 자르는 것이 목적이라면?
INSTR('hello-world', '-') 이 맞습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입