在 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