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 2024 게시물 읽기
No. 2024
프로시저 컬럼 이름알기
작성자
박승이(mosun7)
작성일
2005-06-13 17:26
조회수
2,784

프로시저로 테이블 컬럼을 여러개로 쪼개여 뿌려주었습니다.

예) SELECT A, B, (A+B) AS C FROM ABC;

위처럼

 

select a.name from syscolumns a
join sysobjects b
on a.id = b.id
where b.name = 'ABC'

하면 컬럼을 가져오는데 A,B 만 가져옴니다.

 

A,B,C 모두 가져올수 있나요?

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

SELECT A, B, (A+B) AS C FROM ABC;

이 예는 ABC라는 테이블에 A, B라는 칼럼은 존재하나

C라는 칼럼은 존재하지 않음을 뜻합니다.

-여기서 존재한다는 의미는 물리적으로 있슴을 뜻합니다.

 

select a.name from syscolumns a
join sysobjects b
on a.id = b.id
where b.name = 'ABC'

이 쿼리문은 ABC라는 테이블에서 물리적으로 존재하는 칼럼을

호출하는 것입니다.

당연히 C라는 칼럼은 나오지 않습니다.

 

즉 C라는 칼럼은 사용자가 임의의 계산을 하여 만든 칼럼인데

그걸 테이블에 물리적으로 잡아준다면

이미 만들어져 있는 테이블에 Selecting만 하여도 칼럼이

만들어지는 아주 우스운 현상이 나올것입니다.

 

굳이 나오게 해야겠다면

SELECT A, B, (A+B) AS C FROM ABC;

이 부분을 view로 만드시고

 

select a.name from syscolumns a
join sysobjects b
on a.id = b.id
where b.name = 'ABC'

에서는 abc를 view명으로 하시면 볼 수 있습니다.

 

여리님이 2005-06-14 08:56에 작성한 댓글입니다. Edit

질문을 조금 잘못한것 같네요..

프로시저를 생성하여 case 문으로 컬럼값을 여러개로 분할 하였습니다.

그후 해당 컬럼의 수는 약간의 수정에 따라 들숙 날숙 해지는데..

프로그램에서 매칭을 시켜주기 위해 값을 필드 값을 불러와야

그리드에 뿌려줄수 있을것 같습니다.

 

뷰에서는 조건문이나 반복문이 먹질 않는것 같은데 ,

다른 방법이 없을까요?

박승이(mosun7)님이 2005-06-14 09:13에 작성한 댓글입니다.

그런 것이라면 굳이 필드의 명칭을 sysobject를 이용하여

추출하지 않아도 될 듯합니다.

(실은 하시고자 하는 작업을 정확히 모르고 추측하는 것이니

심한 태클은 하지마시고요^^)

 

어디서 보여줄지 잘 모르겠지만

그냥 asp로 가정한다면

Recordset에 이미 Fieldname의 속성이 있습니다.

(Recordset의 개체를 Rs라고 했다면..)

그런 연유로 무심코 사용하는 Rs("col_name")

이런 형식이 가능한 것입니다.

 

fieldCnt= Rs.fields.count -1

이게 필드의 갯수를 파악하는 것이 되겠지요.

그게 되셨다면 이렇게 뿌려줘봅시다.

 

<%

sql_sting

set Rs = db_con.Execute(sql_string)

fieldCnt = Rs.Fields.count -1

for i = 0 to fieldCnt

      Response.Write Rs(i).Name '이부분이 FieldName추출

      If i < fieldCnt Then

          Response.Write " : "

      end if

Next

%>

이렇게 하시면 FieldName을 뿌려주시는 게 된겁니다.

 

 

 

 

여리님이 2005-06-14 09:27에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
2029커서로 계산하기 ^-^ 그냥 참고로 보셔요
석이
2005-06-15
3163
2026회원통계 보기 (나별 성별~) [6]
석이
2005-06-14
3714
2025DTS 실행을 VB Script로 저장한후에 이를 실행하려면? [3]
나그네
2005-06-13
2601
2024프로시저 컬럼 이름알기 [3]
박승이
2005-06-13
2784
2023데이터베이스
분홍공주
2005-06-13
2228
2020윈20003 엔터프라이즈에서 SQL2000설치 시 희안한 에러납니다.
이시우
2005-06-11
2177
2019엔터프라이즈 메니져 서버 중복등록 관련 질문 [2]
dracure
2005-06-10
2335
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.016초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다