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 6830 게시물 읽기
No. 6830
프로시저에서 리턴된 SELECT 문이 2개인데 하나만 받을 수 없을까요
작성자
홍두표(artisthong)
작성일
2014-07-09 10:25
조회수
7,505

안녕하세요

다름이 아니오라

검색 프로시저를 만들고 해당 SELECT가 데이터가 없을 경우 검색결과가 없다는 리턴 값을 주려고하는데요

제가 만든 프로시저의 검색 부분은 대략 이렇습니다.

SELECT ID, NAME FROM A WHERE A.ID = @ID

IF @@ROWCOUNT = 0
BEGIN

  SELECT '11'  AS ERRCODE, '검색결과 없습니다.' AS ERRMSG

END

RETURN

 

이걸 현재 프로시저를 호출하면 테이블 A에 데이터가 없을경우

결과값이

A테이블에 대한 검색과

IF 문으로 감싼 SELECT 결과 까지

2개로 나뉘어서 오는데

 

제가 구현하고 싶은것은 현재 검색부분을 살리면서 데이터가 없을경우 검색결과가없습니다만 받을수 있게 하고 싶은데

다른 SET 옵션이 있는것인지 아니면 다른 방법이 있을지 알고 싶습니다.

 

 

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

if not exist( select 문)

begin

select '11' ....

end

return

 

이승철(yamyo)님이 2014-07-09 13:05에 작성한 댓글입니다.

IF EXISTS( SELECT 1 FROM A WHERE A.ID = @ID )

BEGIN
SELECT ID, NAME FROM A WHERE A.ID = @ID ;
END
ELSE
BEGIN
SELECT '11'  AS ERRCODE, '검색결과 없습니다.' AS ERRMSG ;
END
 
우욱님이 2014-07-09 13:25에 작성한 댓글입니다. Edit

답변감사합니다.

if not exists   또는 if exists 문장으로 대체해야만 하는지요?

@@rowcount를 이용해서는 할수는 없는거죠? ㅠㅠ

 

 

홍두표(artisthong)님이 2014-07-09 13:35에 작성한 댓글입니다.

-- @@ROWCOUNT를 느무느무 사랑한다면...

DECLARE @tmpID INT;

SELECT TOP 1 @tmpID = ID FROM A WHERE ID = @ID;

 

IF @@ROWCOUNT = 0

BEGIN

  SELECT '11'  AS ERRCODE, '검색결과 없습니다.' AS ERRMSG

END

ELSE

BEGIN

  SELECT ID, NAME FROM A WHERE A.ID = @ID

END

우욱님이 2014-07-09 15:49에 작성한 댓글입니다. Edit

우욱님 감사합니다. ~

사랑하는것보다는 exists 또는 not exists 를 걸기에는 실제 쿼리 조건이 좀 복잡하고 길어서

나중에 조건에대한 변경사항이 발생되면 2번고쳐야하니 그걸 좀 줄여보고자 한것이였어요 ㅋㅋ ^^/

 

조언 감사합니다. :)

홍두표(artisthong)님이 2014-07-09 17:11에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
6833간단한 쿼리 질문드립니다. [1]
질문이요
2014-07-17
6566
6832자식 로우 찾기 2 [1]
우세연
2014-07-13
6926
6831sql server 링크드 서버를 이용한 oracle 함수 사용 [1]
핸시기
2014-07-09
7929
6830프로시저에서 리턴된 SELECT 문이 2개인데 하나만 받을 수 없을까요 [5]
홍두표
2014-07-09
7505
68280으로나누기 오류나요 [2]
김우성
2014-07-05
7216
6827select문을 update문으로 바꾸기 [4]
김우성
2014-06-26
8014
6826트랜젝션 로그(ldf) 분석 관련 질문이요 [1]
조형범
2014-06-26
9665
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.047초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다