SQL中case when 后加条件

2024-12-04 15:35:47
推荐回答(2个)
回答1:

select
b
,(case
when
count(b)=sum(case
when
a=null
then
0
else
1
end)
then
0
else
count(b)
end)
from
表名
group
by
b
(a
b
两个字段,
在b相同的情况下,
要对a有条件的记数,即只要a有一个非空,
就全部记数;
a都为空,
也全部记数;
a都不为空,
则都不记数
举例:
1.
a
b
*
v1
v1
(记数结果
v1:
2)
2.
a
b
v1
v1
(记数结果
v1:
2)
3.
a
b
*
v1
*
v1
(记数结果
v1:
0)
)

回答2:

你写的也太乱了吧,而且也没描述出想要什么效果?我给你改了一下你看看对不对。
CREATE
VIEW
ABC
as
slect
W=case
when
A2
is
null
then
B2
else
A2
end,
E=case
when
A1
is
null
then
C1
else
A1
end
from
A
join
C
on
A1=C1
join
B
on
C2=B2
或者简化一下,直接写:
CREATE
VIEW
ABC
as
slect
W=ISNULL(A2,B2),
E=ISNULL(A1,C1)
from
A
join
C
on
A1=C1
join
B
on
C2=B2