database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Q&A 2054 게시물 읽기
No. 2054
문자를일정한 규칙으로 자를려고..
작성자
도와주세요
작성일
2005-06-27 10:40
조회수
3,093

초보입니다..

다음과같은 일정한 형식을 가지고 데이터 가 들어가 있는..

자료가 있습니다..

create table a(

num varchar(10) null,

id varchar(10) null

)

insert into a ('1','A')

insert into a ('2','B')

insert into a ('3','C')

insert into a ('4','1')

테이블을 이렇게 생성하고..

예) 1,2,3,4

라는 값을 A,B,C,D

로 나타내고자 합니다..

 

가르쳐 주세요..*^^*

 

이 글에 대한 댓글이 총 4건 있습니다.

4뒤에 D?

데이터의 내용과 결과 값을 정확하게 적어주세요

뭘 바라는지 모르겠어요

쉽게 될  수 있을거도 같습니다.

 

석이님이 2005-06-27 14:22에 작성한 댓글입니다.
이 댓글은 2005-06-27 14:28에 마지막으로 수정되었습니다. Edit

질문다시 할게요..

예를 들어  어떤 A라는 테이블의 한 필드에

1,2,3,4 라는 값을 저장하였습니다..

각 값에.. 1대신 A라는 값을

2대신 B, 3 대신 C, 4대신 D라는 값을  넣고싶습니다.

콤마를 기준으로 문자를 자르는것같은데...

잘몰라서요..

 

도와주세요님이 2005-06-28 09:55에 작성한 댓글입니다. Edit

질문하는 방법

-- -----------------------------------------------

다음의 테이블의 데이터를

다음

tblx 의 정의

create table tblx

(

colA char(10)

colB char(10)

)

 

다음의 데이터가 있습니다.

colA colB

1      민석

2      민자

3      슬레빠

4      개똥이

insert into tblx values('1','민석')

insert into tblx values('2','민자')

insert into tblx values('3','슬레빠')

insert into tblx values('4','개똥이')

 

이것을 어떻게 바꾸고 싶습니다.

결과는 다음과 같습니다.

 

colA     colB      colC     colD

1         민석       2          민자

3         슬레빠    4          개똥이

 

쿼리문을 어떻게 만들어야 할까요?

-- --------------------------------------------------

이런커뮤니티의 답변자는 답변할 의무가 없습니다.

다만 여러사람의 의심나는 부분이 나 자신도 곧 의심나고

궁금해 할 것 같아 빨리 한번 알아보자는 취지이기도 하구요

그러니 최대한 편하게 해줘야 하지 않을까요?

 

지금 도와주세요 님은

너무 간단한거 같기도 하고

replace 함 찾아보세요

replace(replace (cola,'1','A'),'2','B')

이런식으로 죽 붙이면 될것도 같고 csv 를 이용한 테이블변수에

데이터를 넣어 구분자로 col to row 의 변환을 거쳐 다시

row to col 을 하는 크로스 탭 기법을 이용할 수도 있고

여러 방법이 있으니 정확한 질문 및 검색이 중요하겠죠?

 

석이님이 2005-06-28 11:40에 작성한 댓글입니다.
이 댓글은 2005-06-28 12:51에 마지막으로 수정되었습니다. Edit

여리님께서 제 답글을 보고 이렇게 할 수 있다고 남겨 주셨습니다.

이런게 되는데.......하면서 일부러 올렸는데

 

벌써 예전에 풀어봤다고 하고 주시네요 ^-^

 

좋은 커뮤니티가 되었으면 좋겠습니다.

 

이하 여리님 소스 ~ ----------------------------------------

 

use pubs
select emp_id, fname from employee
emp_id     fname
------------------
A-C71970F Aria
AMD15433F Ann
A-R89858F Annette
............
------------------


/*
create function dbo.empTb()
returns @t table(idx int IDENTITY (1, 1) NOT NULL,
emp_id char(9),
fname varchar(20),
minit char(1),
lname varchar(30),
job_id smallint,
job_lvl tinyint,
pub_id char(4),
hire_date datetime
 )
as
begin
    insert into @t (emp_id, fname, minit, lname, job_id,job_lvl, pub_id, hire_date )
        select emp_id, fname, minit, lname, job_id,job_lvl, pub_id, hire_date from employee
    return
end
*/

select    max(x.emp_id1) as emp_id1, max(x.fname1) as fname1,
              max(x.emp_id2) as emp_id2, max(x.fname2) as fname2
from
              (select   case when a.idx%2 = 1  then a.idx  else (select max(idx) from empTb() where idx < a.idx)  end as idx,
                            case when a.idx%2 = 1 then a.emp_id else '' end as emp_id1 ,
                            case when a.idx%2 = 1 then a.fname else '' end as fname1 ,
                            case when a.idx%2 = 0 then a.emp_id else '' end as emp_id2,
                            case when a.idx%2 = 0 then a.fname else '' end as fname2
               from empTb() a) x
group by x.idx


emp_id1   fname1               emp_id2   fname2              
--------- -------------------- --------- --------------------
PMA42628M Paolo                PSA89086M Pedro
VPA30890F Victoria             H-B39728F Helen
L-B31947F Lesley               F-C16315M Francisco
.....................
--------- -------------------- --------- --------------------

 

원리는 모듈러 연산입니다. 

석이님이 2005-06-28 13:43에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
2058오늘날짜를 기준으로 지난달의 시작일과 끝일 구하기 [7]
석이
2005-06-27
5239
2056이것이 검색인수로 인식되나요? 비검색인수로 되나요? [1]
고영훈
2005-06-27
1904
2055ms access limit 쿼리... [1]
박기훈
2005-06-27
3568
2054문자를일정한 규칙으로 자를려고.. [4]
도와주세요
2005-06-27
3093
2053ERD를 만들려고 하는데요... [2]
손종삼
2005-06-26
2250
2052MSSQL 초보입니다. [1]
강태준
2005-06-25
2531
2051엑세스 쿼리 마법사처럼 비주얼하게 자동으로 쿼리 작성해주는 프로그램이 MS-SQL에도 있습니까? [3]
pahaha
2005-06-25
2261
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다