我得到错误:
子查询返回的值超过1.当子查询跟随=,!=,<,<=,>,> =或子查询用作表达式时,不允许这样做.
我很困惑,因为它告诉我错误发生在第2行,我不明白这是怎么回事?
UPDATE .patient_insurance
SET insurance_sequence = CASE def_cob
WHEN 1 THEN 'Primary'
WHEN 2 THEN 'Secondary'
WHEN 3 THEN 'Third'
WHEN 4 THEN 'Fourth'
WHEN 5 THEN 'Fifth'
WHEN 6 THEN 'Sixth'
WHEN 7 THEN 'Seventh'
WHEN 8 THEN 'Eigth'
WHEN 9 THEN 'Ninth'
END
,status_flag = CASE active_ind
WHEN 'Y' THEN 'Yes'
ELSE 'No'
END
,insurance_company_id = (
SELECT id
FROM insurance
WHERE companyname = payer_name
)
,insurance_number = policy_nbr
,policy_group = group_nbr
FROM person_payer
,person
WHERE person.person_id = person_payer.person_id
AND EXISTS (
SELECT *
FROM patient_insurance
WHERE cast(person_payer_id AS VARCHAR(50)) = isnull(custom_field_22, '')
)
AND isnull(custom_field_22, '') = cast(person_payer_id AS VARCHAR(50))
Run Code Online (Sandbox Code Playgroud)
这条线
insurance_company_id =
(select id from insurance where companyname = payer_name),
Run Code Online (Sandbox Code Playgroud)
它告诉您该子查询返回多行,并且它不能将多行的值分配给单行上的单个列.