SELECT
( CASE WHEN '第一个字段名' IS NOT NULL THEN '第一个字段名'ELSE '第二个字段名 'END ) AS plantName,
plant_name,
fourth_name
indu_market_price
https://blog.csdn.net/chenkunNB/article/details/123502844?spm=1001.2014.3001.5501
SELECT ( CASE WHEN '第一个字段名' IS NOT NULL THEN '第一个字段名'ELSE '第二个字段名 'END ) AS plantName, plant_name, fourth_name FROM indu_market_price效果明显可看出
PostgreSql:
COALESCE(expr1,expr2)
COALESCE函数是返回参数中的第一个非null的值,它要求参数中至少有一个是非null的,如果参数都是null会报错。
select COALESCE(a.price,0) from goods;
Mysql:
if(expr1,expr2,expr3)
当expr1 <> 0 且 expr1 <>NULL ,取值expr2,否则取值expr3
select if(a.price,a.price,0) from
在oracle、mssql、mysql中,判断是否为空,为空则替换为其他字符的函数不一样,这里分别列举一下
功能为:如果第一个value为null,则返回第二个value
// mysql
select ifnull(null,'mysql')
select ifnull(c_name,'没有名字')
// mssql
select isnull(null,'mssql')
select isnull(c_name,'没有名字')
// oracle
select nvl(null,'oracle
IF
NULL() 函数用于判断第
一个表达式是否为
NULL,如果为
NULL 则返回第二个参数的
值,如果不为
NULL 则返回第
一个参数的
值。
IF
NULL() 函数语法格式为:
IF
NULL(expression, alt_value)
expression
要测试的
字段值
alt_value
expression为
NULL 时返回的
值
第
一个参数为
NULL:
SELECT IF
NULL(
NULL, "你好");
以上输出结果为:
目标:如果col1为空则取col2的值,如果col2也为空则取col3的值,如果col3还为则取col4的值,如果四个字段均为空则取默认值
1.数据准备
create multiset table test1
col_type varchar(20),
col1 varchar(10),
col2 varchar(20),
col3 varchar(30),
col4 v...
<if test="plantNameList.size > 0">
and (m.plant_name in
<foreach collection="plantNameList" index="index" item="plantName" open="(" separator="," close=")">
#{plantName}
</foreach>
or m.fourth_name in
<foreach colle.
sql对查询为null的值赋默认值
不同数据库使用的参数有所不同,下面总结一下几种常用数据库赋默认值的函数。(以下均为sql语句)
场景:如果 price 字段为Null则赋默认值0
mysql
select ifnull(price,0) from 表名;
oracle
select nvl(price,0) from 表名;
sqlserver
select isnull(price,0) from 表名;
pgsql
select COALESCE(price, 0) from 表名;
这里,我们将 `my_table` 表中的 `struct_col` 列的 `field1` 字段取出,转换为列 `field1_col`。
需要注意的是,如果结构体中某个字段的值为 `null`,使用点号操作符可能会报错。此时,你可以使用 `IFNULL` 函数或 `CASE` 表达式来处理这种情况。例如:
SELECT IFNULL(struct_col.field1, 'N/A') AS field1_col FROM my_table;
SELECT CASE WHEN struct_col IS NULL THEN NULL ELSE struct_col.field1 END AS field1_col FROM my_table;
这里,我们在取结构体中的 `field1` 字段前,先使用 `IFNULL` 函数或 `CASE` 表达式判断该结构体是否为 `null`。如果是 `null`,则返回一个默认值(如 `'N/A'` 或 `NULL`)。