-1

特定のコードに対して 1、2、3、4、または 6 を返すために case ステートメントを使用しています。データベース内のコードは、(varchar(8),null)何らかの理由で SQL がバックグラウンドで自動的にこれを行っているか、指示したのですが、データ型 varchar を数値に変換するときにエラーが発生し、その理由がわかりません。SQL Server 2008.これが私が書いたものです:

DECLARE @CM TABLE (
ENCOUNTER_ID VARCHAR(200)
, [MRN CM] VARCHAR(200)
, NAME VARCHAR(500)
, [CC GRP ONE SCORE] VARCHAR(2)
--, [CC GRP TWO SCORE] VARCHAR(20)
--, [CC GRP THREE SCORE] VARCHAR(20)
--, [CC GRP FOUR SCORE] VARCHAR(20)
--, [CC GRP FIVE SCORE] VARCHAR(20)
--, [CC LACE SCORE] VARCHAR(20)
)
--#####################################################################

INSERT INTO @CM
SELECT
C.PT_NO
, C.MED_REC_NO
, C.PT_NAME
, C.PRIN_DX_CD_1
--, C.PRIN_DX_CD_2
--, C.PRIN_DX_CD_3
--, C.PRIN_DX_CD_4
--, C.PRIN_DX_CD_5
--, C.CC_LACE_SCORE

FROM (
    SELECT PT_NO
    , MED_REC_NO
    , PT_NAME
    , CASE
        WHEN PRIN_DX_CD IN (
        443.9, 440.20
        )
        THEN CAST(1 AS VARCHAR(2))
      END AS PRIN_DX_CD_1

    FROM SMSDSS.BMH_PLM_PTACCT_V
    )C
4

1 に答える 1

1

VARCHAR フィールドの場合は、文字列比較の IN 基準を変更します。

 WHEN PRIN_DX_CD IN (
    '443.9', '440.20'
    )
于 2013-06-19T17:55:10.903 に答える