如何从表中的单个列中选择第一个非空值。

时间:2013-10-25 08:20:04

标签: sql

以下是情况:

表:声明

数据:

Claim id     ex-code     SEQ_no

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

我想提取声明ID和ex-code ..只有首先不应该使用ex-code的null值。是否有任何函数或者我们应该使用子查询..?

5 个答案:

答案 0 :(得分:2)

对于MSSQL,试试这个:

SELECT TOP 1 ClaimId, ExCode,SEQNo FROM Claim WHERE ExCode IS NOT NULL

答案 1 :(得分:1)

应该是

SELECT TOP 1 * 
  FROM claims
  WHERE ex-code IS NOT NULL; 

I think it might be helpful for you

答案 2 :(得分:0)

SELECT top 1 * FROM [Claims] WHERE ex-code <> null

答案 3 :(得分: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)。所以这应该有用。

答案 4 :(得分: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