Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在MySQL中添加行并返回其中一行_Mysql_Sql - Fatal编程技术网

如何在MySQL中添加行并返回其中一行

如何在MySQL中添加行并返回其中一行,mysql,sql,Mysql,Sql,我需要检索HomeID列中具有数值或空值的行,如果有具有相同符号的行,则最终返回带有数值的值 // my table +--------+---------+-------+ | Symbol | Home ID | Value | +--------+---------+-------+ | test | 1 | value | | test | NULL | value | | test1 | 2 | value | | test2 | 3

我需要检索HomeID列中具有数值或空值的行,如果有具有相同符号的行,则最终返回带有数值的值

// 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中运行。令人困惑