1.
select
case when m.MODULE_DESCRIPTION = p.MODULE_DESCRIPTION then 'S' end FLAG
from t1 m
full join t2 p on m.ACAD_PERIOD = p.ACAD_PERIOD and m.MODULE_HOSTKEY = p.MODULE_HOSTKEY
2.
select
case when m.MODULE_DESCRIPTION <> p.MODULE_DESCRIPTION then 'D' end FLAG
from t1 m
full join t2 p on m.ACAD_PERIOD = p.ACAD_PERIOD and m.MODULE_HOSTKEY = p.MODULE_HOSTKEY
第一个例子无论如何都返回S,第二个例子无论如何都返回null, 我期望的是相同返回S, 不相同返回D. 是不是我写的语法有问题? 请大家帮忙
T-SQL 如何在T-SQL case when 比较字符串
答案:3 悬赏:50 手机版
解决时间 2021-02-10 05:58
- 提问者网友:niaiwoma
- 2021-02-10 00:27
最佳答案
- 五星知识达人网友:鸠书
- 2021-02-10 02:04
select m.MODULE_DESCRIPTION,p.MODULE_DESCRIPTION,
case when m.MODULE_DESCRIPTION = p.MODULE_DESCRIPTION then ‘S’ else 'D' end as FLAG
from t1 m
full join t2 p on m.ACAD_PERIOD = p.ACAD_PERIOD and m.MODULE_HOSTKEY = p.MODULE_HOSTKEY
核对一下数据,看看S和D的时候,两个字段的值是不是跟条件一样。
case when m.MODULE_DESCRIPTION = p.MODULE_DESCRIPTION then ‘S’ else 'D' end as FLAG
from t1 m
full join t2 p on m.ACAD_PERIOD = p.ACAD_PERIOD and m.MODULE_HOSTKEY = p.MODULE_HOSTKEY
核对一下数据,看看S和D的时候,两个字段的值是不是跟条件一样。
全部回答
- 1楼网友:長槍戰八方
- 2021-02-10 04:10
select
case when m.MODULE_DESCRIPTION = p.MODULE_DESCRIPTION then 'S' else 'D' end FLAG
from t1 m
full join t2 p on m.ACAD_PERIOD = p.ACAD_PERIOD and m.MODULE_HOSTKEY = p.MODULE_HOSTKEY
- 2楼网友:十年萤火照君眠
- 2021-02-10 03:23
不要使用when null来判断,等于null的时候判断不出来的
你可以当字段等于null时给一个默认值。比如
(case isnull(field,'')
when '1' then '1'
when '' then '1'
else '0' end
) as field
或者在when后边写条件
case when field = '1' then '1' when field is null then '1' else '0' end as field
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
正方形一边上任一点到这个正方形两条对角线的 |
阴历怎么看 ? |