我正在尝试在 case 语句中编写以下语句。尝试为特定列更新不同 TableB 中的值。
在我做之后
Update a
set DISMMR =
然后尝试在 case 语句中检查以下条件
'H01' Is not NULL
and
('H02','H03','HR04','S07','S08','S09') Is NULL
Then 'Unknown'
这里这个值来自表名:TableA
和列名Code
。
这个特定的列被设计为NOT NULL
这里我说Is NULL
的意思是我想说的是,这个特定的值('H02','H03','HR04','S07','S08','S09')
不存在或不存在于TableA
.
当我H01
在TableA
for column中说这个特定值时Code
---- Is not NULL
-- 表示该列的这个特定值Code
存在/存在于来自 的列中TableA
。
我需要在 case 语句中执行此操作,因为一旦我检查完这个条件,我正在编写以WHEN开头的其他 case 语句来检查另一个条件并使用不同的值进行更新
我正在使用 SQL Server 2008 R2。现在我写了下面的查询。它在 SSMS 中运行良好,但是当我在 SSIS 包中使用此存储过程时。我的包裹因错误而失败。
[执行 SQL 任务] 错误:执行查询“执行 [dbo].[usp_GetMRF_CHP] ?,?,?” 失败并出现以下错误:“当子查询没有与 EXISTS 一起引入时,选择列表中只能指定一个表达式。”。可能的失败原因:查询有问题,“ResultSet”属性设置不正确,参数设置不正确
CASE WHEN EXISTS(SELECT 1 FROM dbo.TableA WHERE Code = 'H01')
AND NOT EXISTS(SELECT 1 FROM dbo.TableA
WHERE Code IN ('H02','H03','HR04','S07','S08','S09')
)
THEN 'Unknown'
when ---- I have another case here.
任何帮助将不胜感激。提前致谢