gpt4 book ai didi

java - 如果找不到记录,则 SQL 查询调用失败

转载 作者:行者123 更新时间:2023-11-30 22:09:50 25 4
gpt4 key购买 nike

我正在尝试从 sql 数据库中获取一个字符串。我有以下查询:

select DISTINCT HARDWARE.NAME
from HARDWARE INNER JOIN
HARDWARE_LINKING
on HARDWARE.ID = HARDWARE_LINKING.ID
where HARDWARE_LINKING.EXTERNALID='5528752'.

现在,当没有针对任何 id 的记录时,函数调用将失败。这是我调用以获取数据的函数代码:

public String search(String externalId) {
String SQL = "select DISTINCT HARDWARE.NAME from HARDWARE INNER JOIN HARDWARE_LINKING on HARDWARE.ID = HARDWARE_LINKING.ID where HARDWARE_LINKING.EXTERNALID=?";
Object[] input = new Object[] {externalId};
String name = jdbcTemplate.queryForObject(SQL,input, String.class);
return name;
}

有什么方法可以返回默认值吗?有时会返回多个值,但我只想返回单个字符串值,这可能吗?提前谢谢你

最佳答案

一种方法是将默认值放入查询本身。使用聚合函数和 COALESCE():

select coalesce(h.NAME, '<default value>') as NAME
from HARDWARE h INNER JOIN
HARDWARE_LINKING hl
on h.ID = hl.ID
where hl.EXTERNALID = '5528752';

没有 GROUP BY 的聚合查询总是 返回一行,所以这似乎更符合您的需求。

另请注意,我将表别名放入查询中。这些使查询更易于编写和阅读。

关于java - 如果找不到记录,则 SQL 查询调用失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40450473/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com