在 sql 中使用 if else 条件的子字符串
sub string using if else condition in sql
我有一个数据字段,它由 ndc(字段名称)组成,如下所示
00037002207 EN,
64370042140 CR,
NOT APPLICABLE,
64370042140 CR,
我想 select 如果 ndc 以 %NOT APP% 开头,我必须获取 substr(ndc,0,14) 如果它以 numaric substr(ndc,0,11) 开头。
因为我是 sql 的新手,我快要崩溃了
申请建议。
假设您实际上只有这两种可能的值,并且它们总是以完全相同的方式呈现,并且您实际上想要有一个的整个数字部分,没有一个的整个 "NOT APPLICABLE"
值:
declare @inputData table (val varchar(max))
insert into @inputData values ('00037002207 EN'),('64370042140 CR'),('NOT APPLICABLE'),('64370042140 CR')
select
val,
case
when val like 'NOT APP%'
then substring(val,0,15)
else substring(val,0,12)
end as outputVal
from @inputData
val
outputVal
00037002207 EN
00037002207
64370042140 CR
64370042140
NOT APPLICABLE
NOT APPLICABLE
64370042140 CR
64370042140
我有一个数据字段,它由 ndc(字段名称)组成,如下所示
00037002207 EN,
64370042140 CR,
NOT APPLICABLE,
64370042140 CR,
我想 select 如果 ndc 以 %NOT APP% 开头,我必须获取 substr(ndc,0,14) 如果它以 numaric substr(ndc,0,11) 开头。 因为我是 sql 的新手,我快要崩溃了 申请建议。
假设您实际上只有这两种可能的值,并且它们总是以完全相同的方式呈现,并且您实际上想要有一个的整个数字部分,没有一个的整个 "NOT APPLICABLE"
值:
declare @inputData table (val varchar(max))
insert into @inputData values ('00037002207 EN'),('64370042140 CR'),('NOT APPLICABLE'),('64370042140 CR')
select
val,
case
when val like 'NOT APP%'
then substring(val,0,15)
else substring(val,0,12)
end as outputVal
from @inputData
val | outputVal |
---|---|
00037002207 EN | 00037002207 |
64370042140 CR | 64370042140 |
NOT APPLICABLE | NOT APPLICABLE |
64370042140 CR | 64370042140 |