比较解析为null时的大小写

x8goxv8g  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(361)

写这个最好的方法是什么?
我正在用case-when语句分析几个场景。当两者匹配时,返回1。如果没有匹配项,则在name和school上匹配=null并返回2。如果仍然没有匹配,则返回0。
即:

CASE WHEN  (x.name = x.name and x.school = y.school) THEN 1
WHEN (x.name = x.name and x.school = compare and resolve to null if not matched) THEN 2
ELSE 0

问题1:如何写第2行我想我已经解决了。

CASE WHEN  (x.name = x.name and x.school = y.school) THEN 1
  WHEN (x.name = x.name and y.school is null) THEN 2
  ELSE 0

问题2:一旦我弄清楚如何为第2行编写比较,分支2的真正解决方案将需要从2个空学校值中选择最低层。在下面的图片中,假设name和school不匹配,所以逻辑转到branch2比较(name和school为null)。在这种情况下,有两种可能的组合-第2层和第3层。如何编写then参数来为分支2选择twe的最低层?

k4emjkb1

k4emjkb11#

这就是你想要的吗?

case 
    when x.name = y.name and x.school = y.school then 1 
    when x.name = y.name and x.school is null and y.school is null then 2 
    else 0
end

如果两个分支都成功,则第一个分支成功 name 以及 school 匹配。第二场比赛开始了 name 两个相等的 school 她有 null 价值观。

相关问题