-1

下面是情况:

表:索赔

数据:

Claim id     ex-code     SEQ_no

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

我想提取声明 id 和 ex-code.. 仅应使用 ex-code 的第一个非空值.. 是否有任何功能或者我们应该使用子查询..?

4

5 回答 5

2

对于 MSSQL,试试这个:

SELECT TOP 1 ClaimId, ExCode,SEQNo FROM Claim WHERE ExCode IS NOT NULL
于 2013-10-25T08:22:33.807 回答
1

它应该是

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

我想它可能对你有帮助

于 2013-10-25T08:22:44.710 回答
0
SELECT top 1 * FROM [Claims] WHERE ex-code <> null
于 2013-10-25T08:22:59.077 回答
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使用)。所以这应该有效。

于 2013-10-25T08:23:15.987 回答
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
于 2013-10-25T08:40:10.830 回答