-1

我对 selectquery 条件有疑问,我知道 selectquery 条件是错误的。所以任何人都可以帮助我如何在这里设置这个条件。

caseInfoList = new GroupModel<CaseInfoDataNew>();
Transaction transaction = Transaction.current();
SelectQuery<Record> selectQuery = transaction.selectQuery();
selectQuery.addSelect("CASE ValidInfoGroup.InfoGroup WHEN null THEN ValidInfo.InfoGroup ELSE ValidInfoGroup.InfoGroup END InfoGroup");

但我想将字符串参数更改为 field.how 它怎么可能。

错误:- SelectQuery 类型中的方法 addSelect(Field...) 不适用于参数(字符串)

4

3 回答 3

1

我怀疑你还没有尝试过 jOOQ 的CASE表情支持?解决方案类似于:

selectQuery.addSelect(
    DSL.decode().value(ValidInfoGroup.InfoGroup)
                .when(DSL.val(null), ValidInfo.InfoGroup)
                .otherwise(ValidInfoGroup.InfoGroup)
                .as("InfoGroup")
);

但是,鉴于您的实际CASE表达,您可能最好使用nvl

selectQuery.addSelect(
    DSL.nvl(ValidInfoGroup.InfoGroup, ValidInfo.InfoGroup).as("InfoGroup")
);
于 2013-10-09T12:56:50.247 回答
0

is Null应该使用检查 null

... CASE ValidInfoGroup.InfoGroup WHEN null THEN ....
于 2013-10-09T12:37:49.180 回答
0

try

selectQuery.addSelect("CASE ValidInfoGroup.InfoGroup WHEN Is NULL
THEN ValidInfo.InfoGroup ELSE ValidInfoGroup.InfoGroup END InfoGroup");
于 2013-10-09T12:44:31.593 回答