【发布时间】:2018-02-23 18:41:12
【问题描述】:
每当我看到该类型处于停用状态而与相同 ID 中的其他类型无关时,我只需要获取停用值,其余值应为空。
select id,
pid,
type,
case when type='deactivate' then null as value1 else value1 end,
case when type='deactivate' then null as value2 else value2 end,
case when type='deactivate' then null as value3 else value3 end,
case when type='deactivate' then null as value4 else value4 end,
case when type='deactivate' then null as value5 else value5 end,
case when type='deactivate' then value6 end,
case when type='deactivate' then deactivate_date end,
case when type='deactivate' then status end
from typetable
但每当 pid 发生变化时,我都会得到 value1 到 5 的值。 每当我看到 type='deactivate' 时,我的数据中有什么方法我必须忽略同一 ID 中所有类型的 value1 到 5 的值吗? 输出应该类似于下面提到的 ID-1 和 3 的空值。
id pid type value1 value2 value3 value4 value5 value6 deactive date Status
0 1 case 99 null null null null null null
0 2 test null 101 null null null null null
0 3 levels null null CAAD null null null null
0 4 package null null null null DSIT null null
1 1 case null null null null null null null
1 2 test null null null null null null null
1 3 levels null null null null null null null
1 4 package null null null null null null null
1 5 deactivate null null null null null 9999999 9/1/2014 Void ID
2 1 case CLR 6# null null null null null null
2 2 test null 6 null null null null null
2 3 levels null null MAA null null null null
3 1 case null null null null null null null
3 2 test null null null null null null null
3 3 levels null null null null null null null
3 4 package null null null null null null null
3 5 deactivate null null null null null 9999999 1/7/2016 Closed
【问题讨论】:
-
只有当我得到类型 deactivate 时,每种类型下都有值,如果类型不是“DEACTIVATE”,只需将 null 设为 1 到 5 的值,那么我必须获取所有值
-
这个问题真的很不清楚:这就是我的理解。对于每个 id,如果有任何行具有相同的 id 并键入 deactivate,则隐藏整个组的所有值。
标签: sql sql-server