2017-04-13 3 views
0

매우 혼란스러운 결과가 나오는 검색어를 작성했습니다. 이 표에서 800 값이 있습니다기존 표와 작성된 임시 표 사이의 값을 일치 시키려고 시도했습니다.

IF OBJECT_ID('tempdb..#MentalDX') IS NOT NULL 
DROP TABLE #MentalDX 
CREATE TABLE #MentalDX (
MHDX VARCHAR(254)) 

INSERT INTO #MentalDX (MHDX) 
VALUES ('F03.90'),('F03.91')....; 

: 시작하려면, 나는 다음과 같은 형식을 사용하여 임시 테이블을 만든 특정 코드 (VARCHAR)의 목록을 가지고있다. 다음 케이스 문을 사용할 때 :

CASE WHEN edg2.REF_BILL_CODE IN (mdx.MHDX) THEN edg2.REF_BILL_CODE 
    ELSE NULL 
    END AS mdx2 

나는 항상 NULL 값을 얻고 있습니다. 나는 IN 대신 =을 사용했지만 아무런 차이가 없습니다. 테스트 쿼리를 만들고 테이블의 기존 값으로 열 참조를 바꾸면 임시 테이블이 작동한다는 것을 알고 있습니다. 데이터베이스는 REF_BILL_CODE가 varchar (254)이고 내 임시 테이블 열을 동일하게 정의했음을 보여줍니다. 내가 뭘 잘못했을지 모르겠다. 더 많은 코드 세그먼트를 공유 할 수 있지만 개인 식별 정보에는 할 수없는 항목이 있습니다.

답변

0

내 문제는 내 쿼리에서 임시 테이블에 가입했다는 것입니다. 실제로 다음과 같은 결과가 나왔습니다.

이렇게하면 이전의 모든 NULL 대신 실제 결과가 반환됩니다. 이제 새로운 문제가 생겼지 만 그 질문을하기 전에 더 많은 연구를 할 것입니다.