CREATE TABLE mytable
(
x int not null,
y char(1) not null,
constraint CK_mytable_myrules CHECK (
1 = CASE
WHEN x=5 AND y='a' THEN 1
WHEN x=12 AND y='b' THEN 1
/* More rules here */
ELSE 0 END
)
경우 표현는 항상 값을 반환해야한다. 부울은 SQL의 일부가 아닙니다.
일반적인 규칙 인 경우 또는, 당신은 두 가지 선택이 "우리가 이러한 규칙 중 하나를 일치하지 않은 경우를 통해하자"- (내 자신, 단지 중첩 된 경우, 또는 "대체"규칙을 발명 용어) :
중첩 된 경우 :
1 = CASE
WHEN x=5 THEN
CASE WHEN y='a' THEN 1
ELSE 0 END
WHEN x=12 THEN
CASE WHEN y='b' THEN 1
ELSE 0 END
/* More rules here */
ELSE 1 END
또는 다른 방법 :
1 = CASE
WHEN x=5 AND y='a' THEN 1
WHEN x=5 THEN 0
WHEN x=12 AND y='b' THEN 1
WHEN x=12 THEN 0
/* More rules here */
ELSE 1 END
좋아요! 답변 주셔서 감사합니다. – Tim