如何在MySQL中添加行并返回其中一行
我需要检索HomeID列中具有数值或空值的行,如果有具有相同符号的行,则最终返回带有数值的值如何在MySQL中添加行并返回其中一行,mysql,sql,Mysql,Sql,我需要检索HomeID列中具有数值或空值的行,如果有具有相同符号的行,则最终返回带有数值的值 // my table +--------+---------+-------+ | Symbol | Home ID | Value | +--------+---------+-------+ | test | 1 | value | | test | NULL | value | | test1 | 2 | value | | test2 | 3
// my table
+--------+---------+-------+
| Symbol | Home ID | Value |
+--------+---------+-------+
| test | 1 | value |
| test | NULL | value |
| test1 | 2 | value |
| test2 | 3 | vlaue |
+--------+---------+-------+
事实上,我做过类似的事情。它为我添加了符号,但我不知道如何归还我需要的诗
SELECT
[Symbol],
COUNT(*) AS CNT
FROM [DB].[dbo].[Table]
GROUP BY
[Symbol]
HAVING COUNT(*) > 1;
一种方法是:
select t.*
from t
where t.homeid is not null or
not exists (select 1
from t t2
where t2.symbol = t.symbol and t2.homeid is not null
);
如果您只有这三列,并且希望每个符号正好有一行,那么也可以使用聚合来实现这一点:
select symbol, max(homeid) as homeid,
coalesce(max(case when homeid is not null then value end),
max(value)
) as value
from t
group by symbol;
您已经标记了问题MySQL,但是示例代码不会在MySQL中运行。令人困惑