【发布时间】:2016-03-10 22:31:45
【问题描述】:
我想像这样生成一个CASE WHEN 子查询:
CASE DEVICE.ID WHEN 12 THEN 'some-string-1'
WHEN 34 THEN 'some-string-2'
END
但WHEN 子句的数量是不确定的,将在运行时可用。我有一个Map<Integer, String>,其中的键是WHEN 条件,对应的值是THEN 部分。我需要的是这样的:
CaseValueStep<Integer> caseValueStep = DSL.decode().value(DEVICE.ID);
for (Integer deviceId : devices.keySet()) {
caseValueStep = caseValueStep.when(deviceId, devices.get(deviceId));
}
但问题是在第一个when() 之后结果变为CaseWhenStep。有什么解决办法吗?
【问题讨论】: