2013-10-25 43 views
-3

下面的情况是:如何从表中的单个列中选择第一个非空值。

表:索赔

数据:

Claim id  ex-code  SEQ_no 

A1       1 
A1   dvv   2 
A1   abc   3 
A2   xyz   1 
A2       2 

我想拉要求ID和前代码..只有前代码首先不为空值应为使用..有没有这个功能,或者我们应该使用子查询..?

+0

的数据库你用...如。 MSSQL,MySQL ... –

回答

1

对于MSSQL,试试这个:

SELECT TOP 1 ClaimId, ExCode,SEQNo FROM Claim WHERE ExCode IS NOT NULL 
0
SELECT top 1 * FROM [Claims] WHERE ex-code <> null 
0

试试这个

SELECT claim_id, ex_code, seq_no 
FROM Claims 
WHERE ex_code NOT NULL 
GROUP BY claim_id 
ORDER BY claim_id 

据我所知,GROUP BY返回第一个值(除非使用GROUP_CONCAT)。所以这应该工作。

0

试试这个: 该查询返回索赔ID明智首先记录这是不是空...

WITH getFirstNonNull AS (
SELECT Claimid,ROW_NUMBER() OVER (PARTITION BY Claimid ORDER BY SEQ_no) AS RowNum , ex-code FROM Claims 
WHERE ex-code IS NOT NULL 
) SELECT * FROM getFirstNonNull WHERE RowNum = 1 
相关问题