永发信息网

T-SQL 如何在T-SQL case when 比较字符串

答案:3  悬赏:50  手机版
解决时间 2021-02-10 05:58
  • 提问者网友:niaiwoma
  • 2021-02-10 00:27
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. 是不是我写的语法有问题? 请大家帮忙
最佳答案
  • 五星知识达人网友:鸠书
  • 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的时候,两个字段的值是不是跟条件一样。
全部回答
  • 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
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯