首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何填充MySQL查询中缺少的值

如何填充MySQL查询中缺少的值
EN

Stack Overflow用户
提问于 2015-01-15 00:31:51
回答 2查看 2.3K关注 0票数 1

背景:我正在编写一个查询来比较儿童实际和理想生长数据。孩子们每年看一次医生,医生测量,点被铺在典型的生长曲线上。问题是,我使用的图形组件需要固定数量的数据点。将丢失的数据作为NULL没有问题,但它们必须存在。

我得到的数据:

代码语言:javascript
复制
age weight/kg
-----------------
2   10
3   11
6   20

预期:

代码语言:javascript
复制
age weight/kg
-----------------
2   10
3   11
4   NULL
5   NULL
6   20

所需的年龄值是固定的(在本例中为2-6),并且可以进行硬编码,因为它们不在任何表中,否则我将加入并分组。我想使用一个查询。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-15 02:53:57

如果您想要在0到99之间生成序列的查询,下面是查询。您可以从表中的子查询中获得权重。我已经给出了2到6的范围。

代码语言:javascript
复制
SELECT
    SEQ.SeqValue AS age,
    (SELECT weight FROM your_table WHERE age = SEQ.SeqValue) AS "weight/kg"
FROM
(
SELECT
    (TENS.SeqValue + ONES.SeqValue) SeqValue
FROM
    (
    SELECT 0  SeqValue
    UNION ALL
    SELECT 1 SeqValue
    UNION ALL
    SELECT 2 SeqValue
    UNION ALL
    SELECT 3 SeqValue
    UNION ALL
    SELECT 4 SeqValue
    UNION ALL
    SELECT 5 SeqValue
    UNION ALL
    SELECT 6 SeqValue
    UNION ALL
    SELECT 7 SeqValue
    UNION ALL
    SELECT 8 SeqValue
    UNION ALL
    SELECT 9 SeqValue
    ) ONES
CROSS JOIN
    (
    SELECT 0 SeqValue
    UNION ALL
    SELECT 10 SeqValue
    UNION ALL
    SELECT 20 SeqValue
    UNION ALL
    SELECT 30 SeqValue
    UNION ALL
    SELECT 40 SeqValue
    UNION ALL
    SELECT 50 SeqValue
    UNION ALL
    SELECT 60 SeqValue
    UNION ALL
    SELECT 70 SeqValue
    UNION ALL
    SELECT 80 SeqValue
    UNION ALL
    SELECT 90 SeqValue
    ) TENS
) SEQ
WHERE SEQ.SeqValue BETWEEN 2 AND 6
票数 2
EN

Stack Overflow用户

发布于 2015-01-15 00:40:29

在查询中使用IFNULL()为其赋值为零http://www.mysqltutorial.org/mysql-ifnull/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27954991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档