IFNULL 函数概述
IFNULL 是 TDengine 中用于处理 NULL 值的比较函数,主要功能是当第一个参数为 NULL 时返回第二个参数,否则返回第一个参数。该函数在数据清洗、报表生成等场景中广泛应用,能够有效避免 NULL 值导致的逻辑错误或显示问题。
函数语法如下:
IFNULL(expr1, expr2)
函数参数说明
- expr1:待检查的表达式或列名,TDengine 会判断其值是否为 NULL。
- expr2:当 expr1 为 NULL 时返回的备用值,可以是常量、列名或表达式。
典型应用场景
数据清洗与默认值填充
在物联网数据采集中,传感器可能因故障返回 NULL 值。通过 IFNULL 可为缺失数据设置默认值:
SELECT ts, IFNULL(temperature, -999) AS processed_temp
FROM sensors
WHERE device_id = 'D001';
多级回退逻辑
结合嵌套使用实现多级回退。例如优先使用实时数据,其次使用上周均值,最后返回固定默认值:
SELECT ts,
IFNULL(real_time_value,
IFNULL(last_week_avg, 0)) AS safe_value
FROM metric_data;
代码示例详解
基础用法示例
创建测试表并插入包含 NULL 值的数据:
CREATE TABLE IF NOT EXISTS test_null (
ts TIMESTAMP,
col1 INT,
col2 FLOAT
);
INSERT INTO test_null VALUES
('2023-01-01 00:00:00', 10, 20.5),
('2023-01-01 01:00:00', NULL, 30.2),
('2023-01-01 02:00:00', 15,
1万+

被折叠的 条评论
为什么被折叠?



