我使用case语句返回给定代码的1,2,3,4或6。数据库中的代码存储为(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
答案 0 :(得分:1)
如果它是VARCHAR字段,请更改IN条件以进行字符串比较:
WHEN PRIN_DX_CD IN (
'443.9', '440.20'
)