2009-11-07 2 views
0

제 저장 프로 시저에 3 개의 값을 가질 수있는 단일 매개 변수가 필요합니다.하나의 sql 매개 변수는 3 개의 잠재적 인 값을 제공합니다.

그래서 내가 좋아하는 뭔가를 할 수있다 : 나는 약간의 비트 두드리는을해야 할 것 추측하고

@p1 <-- my parameter 


IF (@p1 ???) -- include users 
    SELECT * FROM USERS 


IF (@p1 ???) -- include employees 
    SELECT * FROM employees 

IF (@p1 ???) -- iclude customers 
    SELECT * FROM CUSTOMERS 

을하지만, SQL에서 그것을 할 방법을 잘하지.

실제로 종류의 UNION을하고있는 중이 야

업데이트.

+2

대부분의 클라이언트 도구와 파괴를 난파 할 매개 변수에 따라 다른 모양의 결과 집합을 반환하는 저장 프로 시저를 반환하는 경우

그것은 다른 이야기 일 수 있습니다. 정말로 그렇게 행동하길 원하니? –

답변

1

@ p1이 bigint 또는 tinyint와 같은 int 또는 그 변형 인 경우 bitwise 및 tinyint를 사용할 수 있습니다.
다음은 예입니다

IF (@p1 & 1 = 1) 
IF (@p1 & 4 = 4) 
2

티 - SQL 인라인을하기보다는, 자주 별도의 저장 프로 시저를 작성하고 그들을 호출하는 것이 더 낫다.

일괄 처리 당 캐시 된 쿼리 계획이 하나뿐이기 때문입니다.

도 Remus의 의견에 유의하십시오. 단 한 번의 책임 규칙 위반입니다. 이로 인해 유지 관리 오류가 발생하기 쉽습니다. 당신은 항상 같은 여러 결과 집합 (MARS) ...

관련 문제