1

需要将 NDCs 代码从 10 位转换为 11 位。在 sql 服务器中 下面的例子提到图片

4

2 回答 2

5
[NDCPACKAGECODE]=(
  CASE CHARINDEX('-', [NDCPACKAGECODE]) 
      WHEN 5 THEN  
             REPLACE('0'+SUBSTRING([NDCPACKAGECODE],CHARINDEX('', [NDCPACKAGECODE]), LEN([NDCPACKAGECODE])+1), '-', '')
      WHEN 6 THEN 
      CASE (CHARINDEX('-', REVERSE([NDCPACKAGECODE])))       
        WHEN 3 THEN  
            REPLACE(LEFT([NDCPACKAGECODE], (CHARINDEX('-', [NDCPACKAGECODE])))+'0'+SUBSTRING([NDCPACKAGECODE], CHARINDEX('-', [NDCPACKAGECODE])+1, LEN([NDCPACKAGECODE])), '-', '') 
        WHEN 2 THEN     
    REPLACE(STUFF([NDCPACKAGECODE], LEN([NDCPACKAGECODE])- CHARINDEX('-', REVERSE([NDCPACKAGECODE]))+1, 1, '0'), '-', '')
    END
    END
    )
于 2014-06-25T08:32:05.333 回答
0

如果有人好奇,这是 MySQL 版本。

select 
ndc_package_code,
replace((
    case locate('-', ndc_package_code)
        when 5 then
            concat(0, ndc_package_code)
        when 6 then
            case (locate('-', reverse(ndc_package_code)))
                when 3 then
                    concat(
                        left(ndc_package_code, locate('-', ndc_package_code)),
                        concat(0, substring(ndc_package_code, locate('-', ndc_package_code) + 1, length(ndc_package_code)))
                    )
                when 2 then
                    concat(left(ndc_package_code, length(ndc_package_code) - 1), '0', right(ndc_package_code, 1))
            end
    end
), '-', '') as normalized_code

来自药物

于 2019-09-13T12:43:19.960 回答