2013-07-05 2 views
0

vb6 프런트 엔드와 sybase를 백엔드로 사용하고 있습니다. 어디서 절에 ISNULL를 사용하거나 내가 NULL = 사용해야합니다sybase의 IsNull where 절

SQLStr = "select distinct thrd_pty.id_thrd_pty, thrd_pty.name_thrd_pty, thrd_pty.nbr_tax_idtn " _ 
      & "from thrd_pty, cntct_rltn, cntct " _ 
      & "where cntct.id_cntct = '" & cntct(ColNum, CurThrdPty) & "' and cntct_rltn.id_super = cntct.id_cntct and cntct_rltn.name_super = 'cntct' and thrd_pty.id_thrd_pty = cntct_rltn.id_thrd_pty and cntct_rltn.dt_eff_end IsNull " 

답변

1

베이스의 일반적인 구문은 다음 중 하나를 (귀하의 예를 들어 완벽하게 괜찮습니다) 또는 널 (null)을 대체 할 더 복잡한 물건 ISNULL(cntct_rltn.dt_eff_end, 0)AND cntct_rltn.dt_eff_end IS NULL 정의 된 기본값으로 그러나 ASE 15에서 다음 중 하나를 수행 할 수 있습니다.

Adaptive Server는 사용하는 연산자와 비교할 값의 유형에 따라 다른 방법으로 null 값을 처리합니다. 일반적으로 NULL 값을 비교 한 결과는 UNKNOWN입니다. 왜냐하면 NULL이 주어진 값이나 다른 NULL과 같은지 (또는 같지 않은지) 판단 할 수 없기 때문입니다. 여기서 @x

  • 식 널
  • 식 = NULL
  • 식 = @x 다음의 경우는 식 NULL로 평가되는 모든 열 변수 또는 문자, 또는 이들의 조합 인 경우, TRUE 반환 NULL을 포함하는 변수 또는 매개 변수입니다. 이 예외는 Null 기본 매개 변수를 사용하여 저장 프로 시저를 쉽게 작성합니다.
  • expression! = n 여기서 n은 NULL을 포함하지 않는 리터럴이고 expression은 NULL로 평가됩니다. (source)

(대문자 개인 스타일의 환경 설정으로 내입니다)

측면 참고로, 당신은 또한 NULL 값을 처리하는 COALESCE() 기능을 사용하지만 사용 사례의 수 그것은 유용한 것을 추가하지 않습니다.

참조 :

+0

AND cntct_rltn.dt_eff_end는 NULL이거나 AND cntct_rltn입니다.dt_eff_end ISNULL (IS와 NULL 사이의 공백) –

+0

@nirudyogi - 테스트 공간. null을 값으로 변환하는 공간이 없습니다. – DVK

1

사용 is null :

cntct_rltn.dt_eff_en D가 null

정보 외, here

EDIT :.

CQ = "= NULL 업데이트 VAR1".cQ = "업데이트 VAR1가 null"을 (가능) ?? ?? - niru의 dyogi

것은 당신이 업데이트하는 경우, 당신은 할당 연산자 =을 사용해야합니다. 조건을 평가할 때만 (예를 들어 제공된 예제의 조건을 계산할 때) is null을 사용할 수 있습니다.

+0

cQ = "update var1 = null".cQ = "var1이 null입니다"????? –

+0

답변이 업데이트되었습니다. – Racso