sql - 如何用相同 PolicyNumber 的非空值替换空字符串
问题描述
ClaimType
目标是用每个不为空的值替换列中的空值,CoverageType
并且PolicyNumber
出于某种原因,我写的 SELECT 语句没有给我想要的结果。在我的 WHERE 子句中我指定:
where
PolicyNumber = c.PolicyNumber
and CoverageType = c.CoverageType
但是为什么对于PolicyNumber
00002 我有 CPL 的“出现” CoverageType
?
我希望看到的是Occurrence-Pollution
:
我在这里想念什么?
declare @ClaimType table (PolicyNumber varchar(50), QuoteID int, CoverageType varchar(50), ClaimType varchar(100))
insert into @ClaimType values ('00001',1, 'CGL', ' '),
('00001',2, 'CGL', 'Occurrence'),
('00002',1, 'CPL', ' '),
('00002',2, 'CPL', 'Occurrence-Pollution')
select PolicyNumber,
QuoteID,
CoverageType,
ClaimType,
case when ClaimType = ' ' then (
select top 1 ClaimType
from @ClaimType c
where
PolicyNumber = c.PolicyNumber
and CoverageType = c.CoverageType
order by QuoteID desc
)
else ClaimType End as ClaimType1
from @ClaimType
go
解决方案
这是你想要的吗?
select ct.*,
coalesce(nullif(ltrim(ClaimType), ''),
max(ClaimType) over (partition by PolicyNumber, CoverageType)
) as ClaimType_2
from @ClaimType ct;
推荐阅读
- c# - 了解 npgsql 命令超时?
- javascript - 如何使用 jquery 在第一个 li 之后附加多个 li?
- ios - 使用一键式 React Native 实现捏缩放
- python - 使用python从完整物理地址中查找纬度和经度
- javascript - 如何在悬停到单个元素时选择多个元素
- xcode - 可以在 iOS 应用程序中支持(部分)本地化而不在应用商店中出现本地化吗?
- javascript - Javascript - 将录制的音频流式传输为麦克风输入
- android - 我的表单键没有在颤振中验证,即使在我将它用作表单中的键并输入合适的值之后
- android - 如何根据条件在 recyclerView 中隐藏子项?
- amazon-s3 - hadoop fs -ls s3://bucket 或 s3a://bucket 抛出“没有这样的文件或目录”错误