好吧,所以我不太知道该怎么称呼这篇文章,我可能稍后会更新标题。
我有以下问题:
例如,假设您有以下计算嵌套sql:

    CREATE
    ALGORITHM = UNDEFINED
    DEFINER = `root`@`localhost`
    SQL SECURITY DEFINER
VIEW `v_user_category_stat` AS
    SELECT
        (SELECT
                SUM(MS.score) + (SELECT
                            SUM(UHMS.score)
                        FROM
                            User_has_module_score UHMS
                                RIGHT OUTER JOIN
                            module M ON M.id = UHMS.module_id
                                JOIN
                            Category C ON C.id = M.category_id
                        WHERE
                            UHMS.user_id = U.id)
            FROM
                Module_score MS
                    RIGHT OUTER JOIN
                Module M ON M.id = MS.module_id
                    JOIN
                Category C ON C.id = M.category_id
            WHERE
                MS.user_id = U.id) AS total_score,
        U.id
    FROM
        User U

这给了我想要的结果:
# total_score, id
NULL, '2'
NULL, '7'
NULL, '8'
NULL, '9'
NULL, '10'
NULL, '11'
NULL, '12'
NULL, '13'
'13', '14'

现在我对自己说,我想通过确保如果值为空,那么它应该是0(而不是空)来美化它
我的问题是你怎么做一个CASE上面写着if null THEN 0 ELSE normal?

最佳答案

检查COALESCE功能。在您的情况下,您将这样做:

COALESCE(normal, 0)

关于mysql - 嵌套select = null然后else的情况,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25325271/

10-11 03:21