안녕하세요

늦었지만 새해 복 많이 받으십시오 ^^


프로시져 작성중 궁금증이 있어서 고수님들의 도움을 청합니다


프로시져에 변수가 하나 있습니다

DECLARE @Test AS NVARCHAR(20)


그리고 SELECT 쿼리가 하나 있습니다

SELECT [Test], [Test2]

FROM

        TB_EXAM

WHERE

        [Test] = @Test



여기서 질문이 있는데요

@Test라는 변수에 NULL이 들어갈 경우도 있습니다

(1) 그러면 아래와 같이 WHERE 절을 한문장으로 처리 하거나

WHERE

       ISNULL( [Test],'') = ISNULL(@Test,'')


(2) 아니면 @Test가 NULL일 경우와 아닐 경우를 IF문으로 구분을 두어서 쿼리를 두개 만들어야 할 것 같은데요

IF @Test IS NULL BEGIN 

  SELECT [Test], [Test2]

  FROM

        TB_EXAM

  WHERE

        [Test] IS NULL

END


ELSE  BEGIN 

  SELECT [Test], [Test2]

  FROM

        TB_EXAM

  WHERE

        [Test] = @Test

END



근데 제가 알기로 (1)번처럼  WHERE의 좌변을 건들면, 쿼리의 속도저하가 일어난다고 알고 있습니다

좌변을 건들지 않고 굳이 (2)번처럼 IF문을 쓰지 않고 더 심플하게 할 수 있는 방법이 있을까 해서 문의를 드립니다.


읽어 주셔서 감사합니다









No. Subject Author Date Views
Notice SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 1093
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 1666
8476 동적쿼리 질문 드립니다. 가끔보는하늘 2015.01.20 2354
8475 누적재고 수량 (서브쿼리) [3] jwko 2015.01.19 3990
» 프로시져 생성 질문 [where 필드 = @변수] 와 [where 필드 IS NULL] [4] 양아치베이비 2015.01.15 3019
8473 쿼리질문드립니다.. [1] SQL어렵.. 2015.01.15 2478
8472 mssql2000에서 mysql sp 실행하기 wassup 2015.01.15 2945
8471 SQL 2008 error 3707 [1] 땅훈 2015.01.15 3094
8470 건우아빠님~ㅠ 세로로 되있는걸 가로로 뿌리는 방법좀 알려주세요ㅠ [5] 뽀챙 2015.01.14 3125
8469 mssql2000 -> mysql 연결된 서버로 프로시저 실행 wassup 2015.01.14 3778
8468 varchar(max)문의 [1] 유리의성 2015.01.14 3431
8467 특정 데이터 베이스 권한 문의 드립니다. 나는짱이야 2015.01.13 2259
8466 서버간 테이블, SP 복제 [11] 하하하하하 2015.01.13 3059
8465 update 문의드립니다. [2] 예성파파 2015.01.13 2672
8464 각 부서의 팀장을 구하고 싶습니다. [1] 엠엔27 2015.01.13 2738
8463 MSSQL에이전트 실행날짜가 저절로 변경됩니다. [5] 김미영_279087 2015.01.10 6763
8462 복구모델이 simple 일때 ldf용량을 작게 설정했을경우 [1] 카루카루 2015.01.09 2563
8461 로그 파일 문의 [4] akfflr 2015.01.09 3043
8460 권한 오류 문의 드립니다. 나는짱이야 2015.01.09 2456
8459 asp에서 DB 컨넥션... [7] 전혜연 2015.01.08 3466
8458 고정IP가 변경되었는데 접속이 안되네요.... [2] 곰탱이아빠 2015.01.08 2931
8457 작업 모니터 실행 시 오류 포탱이 2015.01.07 3527





XE Login