아 이미지 왜 자꾸 깨짐.

이미지 자꾸 깨지니까 그냥 말로하겠음 ...딱히 할말이없네요 이미지올리고싶은데
ps&cube
접속 : 6146   Lv. 86

Category

Profile

Counter

  • 오늘 : 113 명
  • 전체 : 440010 명
  • Mypi Ver. 0.3.1 β
[학생] SQL 아시는분 계시나요? 데이타 분리하는방법좀... (8) 2015/09/10 PM 05:57
name | salary | dno
--------------------
이렇게 컬럼이 있는데

name 을 성과 이름으로 분리해야합니다.
테이블 명은 emp고...
case함수 사용하면 될거같긴해서 일단 firstname하니까 되더라구요... 아래처럼.

select name,sal,dno,
case when name='King%Steven' then 'King'
when name='Kochhar%Neena' then 'Kochhar'
else 'default'
end as First_name from emp
/

이걸ㄹ로 해서 firstname분리했다 생각하고

똑같은 방식으로
아래와 같이 했는데 이러면 이미 위에서 했던 first_name이 사라져버리네요 ㅜㅠ

select name,sal,dno,
case when name='King%Steven' then 'steven'
when name='Kochhar%Neena' then 'Neena'
else 'default'
end as last_name from emp

분리하는 좋은방법 있으면 알려주세요.

신고

 

傲慢[오만]의 墮天使    친구신청

%는 like 검색을 하겠다는 거 아닌가요?
=로 검색하면 저거랑 똑같은 문자만 검색합니다.

傲慢[오만]의 墮天使    친구신청

본문을 다시 읽어 보니 이해가 안된다.
얼라이언스를 last_name으로 줬는데 first_name이 사라줬다는게 무슨 뜻일까...?

외과의사용팔이    친구신청

이름 받아온다음에 토큰으로 잘라야될것같은데요

Plastics    친구신청

middle name 없다는가정하에 그냥 공백으로 잘라 쓰셔야할듯..

체계철    친구신청

mysql 이라면 substring_index 키워드로 검색해보시고.
oracle 이라면 instr 키워드로 검색해보세요.

문자기반으로 문자열을 분리하는데 쓰는 내장 함수입니다.

G마니아    친구신청

구분자 없이 이어져 있다면 정규식이나 루프돌면서 두번째 대문자 자릿수에서 substr 잘라내기를 하셔야할듯?

Slipnoose    친구신청

위에 체계철님 말씀처럼 db 종류에 따라 다른데 문자열 위치를 인트형으로 리턴해주는 내장함수가 있습니다.

mysql이나 oracle은 이야기 해주셨고, sqlserver는 아래처럼 쓸수있습니다.

select substring('1234%678', 1, charindex('%', '1234%678', 1)-1) as c1
, substring('1234%678', charindex('%', '1234%678', 1)+1, len('1234%678')) as c2

리턴값은 아래처럼 나옵니다
c1 c2
1234 678

Slipnoose    친구신청

위의 테이블로 바꾸면 아래처럼 됩니다.

select substring(name, 1, charindex('%', name, 1)-1) as first_name
, substring(name, charindex('%', name, 1)+1, len(name)) as last_name
from emp
X