gpt4 book ai didi

sql - 如果结果为空,则选择默认值

转载 作者:行者123 更新时间:2023-12-01 22:40:26 24 4
gpt4 key购买 nike

你好 friend ,我一直在使用这个查询来选择我的 Java 应用程序中的两个字段。

select distinct STU_LEVEL, STU_STREAM from STUDENT_MASTER_TABLE where STATUS_YEAR !=ACADEMIC_YEAR

问题是如果没有数据,应用程序将抛出一个空指针异常。我需要它,如果字段为 Null,则它们默认为 0。我已经用 Coalesce 尝试过这个,但我似乎无法理解它:

select coalesce(distinct (STU_LEVEL,0),  (STU_STREAM, '0')) from STUDENT_MASTER_TABLE where STATUS_YEAR !=ACADEMIC_YEAR

请帮忙。

最佳答案

你只需要像这样使用 COALESCE 两次:

SELECT DISTINCT COALESCE(STU_LEVEL,0), COALESCE(STU_STREAM, '0')
FROM STUDENT_MASTER_TABLE
WHERE STATUS_YEAR !=ACADEMIC_YEAR

如果 STU_Level 为 NULL,这将返回 0,如果 STU_Stream 为 NULL,则返回 0。

SQL Fiddle Demo

针对您的评论,您似乎需要使用 UNION 在未找到任何记录时获得所需的结果:

SELECT DISTINCT COALESCE(STU_LEVEL,0), COALESCE(STU_STREAM, '0')
FROM STUDENT_MASTER_TABLE
WHERE STATUS_YEAR !=ACADEMIC_YEAR
UNION
SELECT 0,'0' FROM DUAL
WHERE NOT EXISTS (
SELECT DISTINCT COALESCE(STU_LEVEL,0), COALESCE(STU_STREAM, '0')
FROM STUDENT_MASTER_TABLE
WHERE STATUS_YEAR !=ACADEMIC_YEAR
)

还有一个示例 fiddle :http://www.sqlfiddle.com/#!4/29039/1

关于sql - 如果结果为空,则选择默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14982043/

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