Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.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
Sql 返回每列中的第一个非空值_Sql_Null_Ignore - Fatal编程技术网

Sql 返回每列中的第一个非空值

Sql 返回每列中的第一个非空值,sql,null,ignore,Sql,Null,Ignore,我希望从一个表中创建一个按天和客户ID的摘要/汇总表(该表当前正在从多个来源更新) 对于每个客户ID和交易日期,我希望在该列中获得该组合的最小值、最大值、总和或第一个非空值。我对min、max和sum没有问题,但是我想知道如何最好地处理列中的第一个非空值 我的表的外观示例: Cust ID Trans Date Housing Housing $ Retail Retail $ Arrival 123 1/1/2019 test1 $500

我希望从一个表中创建一个按天和客户ID的摘要/汇总表(该表当前正在从多个来源更新)

对于每个客户ID和交易日期,我希望在该列中获得该组合的最小值、最大值、总和或第一个非空值。我对min、max和sum没有问题,但是我想知道如何最好地处理列中的第一个非空值

我的表的外观示例:

Cust ID  Trans Date   Housing    Housing $    Retail    Retail $   Arrival
123      1/1/2019     test1      $500.00      NULL      NULL       1/1/2019
123      1/1/2019     NULL       NULL         product1  $15.00     NULL
1235     5/10/2019    test2      $1,000.00    NULL      NULL       5/10/2019
1234     10/15/2019   test2      $1,000.00    NULL      NULL       10/15/2019    
1234     10/15/2019   NULL       NULL         product2  $25.00     NULL
我想要的结果是:

123      1/1/2019     test1      $500.00      product1  $15.00     1/1/2019
1235     5/10/2019    test2      $1,000.00    NULL      NULL       5/10/2019
1234     10/15/2019   test2      $1,000.00    product2  $25.00     10/15/2019
SQL表表示无序集。列中没有“第一个值”-NULL或其他形式--除非列指定了顺序

但是,对于结果集,简单的聚合似乎就足够了:

select CustID, TransDate, max(Housing), max(Housing$), max(Retail), max(Retail$), max(Arrival)
from t
group by CustID, TransDate;
SQL表表示无序集。列中没有“第一个值”-NULL或其他形式--除非列指定了顺序

但是,对于结果集,简单的聚合似乎就足够了:

select CustID, TransDate, max(Housing), max(Housing$), max(Retail), max(Retail$), max(Arrival)
from t
group by CustID, TransDate;