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
운영게시판
최근게시물
Sybase Q&A 1498 게시물 읽기
No. 1498
이런것도 쿼리문으로 가능 한지 한번 봐주세요 ^^
작성자
초보
작성일
2006-04-10 16:51
조회수
4,984

테이블명 : test

필드 : id char(4)

 

id

------

2

4

5

6

 

위와 같은 테이블이 있으면 만약 select 시 조건에서

범위를 id 범위를 1 ~ 10 사이를 주었을경우 결과가

1,3,7,8,9,10 이런식으로 나오게 할수 있는 방법이 혹시나 있나요??

 

답변좀 부탁드릴께요 ^^

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

select id from test where id >0 and id <11 order by id

 

이걸 원하시는 건가요?

 

 

정말요?

지연님이 2006-04-11 08:54에 작성한 댓글입니다. Edit

select id from test where id >0 and id <11 order by id

 

위의 쿼리가 아닌것 같습니다.

 

데이터가 2,4,5,6 이 있고

 

보여지는 데이터는 위의 데이터를 제외하고 보여주는 쿼리를 원하시는듯.

 

제가 생각나는건 일단 test 테이블의 id 데이터에 대한 꽉찬 테이블을

 

임시로 만들어서 minus 를 이용해서 쿼리를 만들어야 되지 않나..생각해 봅니다.

 

임시테이블 : copyt

필드 : id

데이터 : 1 ~ 10

 

select id from copyt where id > 0 and id < 11

minus

select id from test where id > 0 and id < 11

 

이렇게 하면.. A - B 니까.. 1,3,7,8,9,10 이 SELECT 이 될듯.

 

이것도 아닌가???

홍님이 2006-04-11 10:33에 작성한 댓글입니다. Edit

지가 무식 해서 질문을 잘못 알았군요.......ㅋㅋ

 

우선 홍님의 minus는 sybase에서는 제공 하지 않습니다(oracle 구문이죠)

 

create proc test(@b int,@c int)
as

declare @a int
select @a=@b
select * into #kkk from test where 1=2
while @a <= @c
begin
insert #kkk values (convert(char(4),@a))
select @a=@a+1
end
select aid from (select  a.id as aid,b.id as bid from #kkk a ,test  b where a.id *= b.id ) c where bid =null
그래서 위와 같은 procedure를 만들었습니다

 

test 1,10

 

aid 
--- 
1   
3   
7   
8   
9   
10  

 

 

 

이게 원하시는 건가요?

지연님이 2006-04-11 13:37에 작성한 댓글입니다. Edit

답글 감사 합니다..

위와 같은 쿼리를 원하는건데요..^^

 

이부분 주석좀 부탁 해도 될가요? 꾸벅...

select @a=@b   /*??*/
select * into #kkk from test where 1=2 /*??*/
while @a <= @c
begin
insert #kkk values (convert(char(4),@a))/*??*/
select @a=@a+1 /*??*/
end
select aid from (select  a.id as aid,b.id as bid from #kkk a ,test  b where a.id *= b.id ) c where bid =null

 

/*??*/ 처리된 부분좀 설명좀 부탁 드려요 ~~ 감사합니다.

초보님이 2006-04-12 00:58에 작성한 댓글입니다. Edit

프로시저 관련 메뉴얼을 한번 정독해 보십시요. 물론 sybase 사이트에

있습니다.

 

create proc test(@b int,@c int)

as

 

declare @a int //변수선언

select @a=@b //입력받은 변수를 @a 에 넣기

select * into #kkk from test where 1=2

//임시테이블 kkk 에 데이터 넣기. where 1=2 은 test 테이블에서 아무런 row 도 없이 select 한다는 듯.

while @a <= @c // 루프..a 가 c 보다 작거나 같을동안 돌자..

begin

insert #kkk values (convert(char(4),@a))

select @a=@a+1 // 1씩 증감

end //#kkk 에 들어가는 정보는 @b ~ @c 까지의 순차적인 값

select aid from (select a.id as aid,b.id as bid from #kkk a ,test b where a.id *= b.id ) c where bid =null

 

요렇게 해석이 됩니다만....직접 해 보시면 대강은 감이 오실껍니다.

 

 

 

홍님이 2006-04-12 10:15에 작성한 댓글입니다. Edit

답변 무지 감사 합니다.. 근데 위의 문장을 돌렸을 경우 이런 에러가...

어디가 틀린거지 ... 모르겠어요 T.T 한번만 더 봐주세요.

 

Procedure 'sp_test', Line 11:
Incorrect syntax near '('.
Server Message:  Number  102, Severity  15
Procedure 'sp_test', Line 11:
Incorrect syntax near 'c'.

 

초보님이 2006-04-17 10:11에 작성한 댓글입니다. Edit

버젼이 상당히 낮은 버젼이군요...

 

inlineview가 안된다면 12.5.0.3 이전 버젼인데요..

 

 

Upgrade하심이 좋을듯 싶습니다,

지연님이 2006-04-17 11:58에 작성한 댓글입니다. Edit

버젼이 11.5.1.3 인데요.... 업그레이드 안하고 sybase 제공하는 패치같은것은 없나요??

초보님이 2006-04-18 09:03에 작성한 댓글입니다. Edit

patch를 설치 해도 11.5.X 입니다.

 

 

in line view는 12.5.0.3부터 제공을 합니다...

 

 

이렇게 바꿔야 할것 같군요

 

create proc test_proc1(@b int,@c int)
as

declare @a int
select @a=@b
select * into #kkk from test where 1=2
while @a <= @c
begin
insert #kkk values (convert(char(4),@a))
select @a=@a+1
end
select  a.id as aid,b.id as bid into #kkk1 from #kkk a ,test  b where a.id *= b.id
select aid from #kkk1 where bid =null

 

 

수고하세요

지연님이 2006-04-18 09:30에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
1501convert를 사용하여 char를 int로 변경에서 에러.... [3]
jhkim
2006-04-11
5551
1500실행계획 UI제공은 없나요? [1]
아류겐
2006-04-11
3975
1499[완전초보]Window Server 2003에 Sybase 설치 오류 [3]
달나라
2006-04-10
3870
1498이런것도 쿼리문으로 가능 한지 한번 봐주세요 ^^ [9]
초보
2006-04-10
4984
1497서브 쿼리 안에서 DESC 하는 방법이 없나요?? [2]
전환석
2006-04-10
3819
1496완전초보~(connection 지정) [1]
달나라
2006-04-10
3712
1495완전초보~ [ODBC 연결] [1]
달나라
2006-04-10
5367
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.021초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다