我无法弄清楚我指定的错误是什么,STUDENT.CURRENT_CURS_ID 列中的空值不会被 iif 或 nvl2 处理,并且一般来说,具有空值的学生不包含在学生列表中
一旦我设置实际值 STUDENT.CURRENT_CURS_ID 而不是 null,学生就会进入 select
var content =
context
.select(
STUDENT.ID,
STUDENT.NAME,
// nvl2(STUDENT.CURRENT_CURS_ID, currentCurs.CURS, ""),
iif(STUDENT.CURRENT_CURS_ID.isNull(), "", currentCurs.CURS),
futureCurs.CURS)
.from(STUDENT)
.innerJoin.......
.fetchInto(StudentInfo.class);
我检查它适用于数据类型为字符串 iif 和 nvl2 的列,但 STUDENT.CURRENT_CURS_ID 具有 uuid 类型,并且由于某种原因不适用于 iif 和 nvl2。我找不到有解决办法吗?
您可能正在内在加入
CURRENT_CURS_ID
。这意味着,如果是 NULL
,那么 INNER JOIN
将过滤掉您想要保留的记录。
只需使用
.leftJoin()
代替