需要将 NDCs 代码从 10 位转换为 11 位。在 sql 服务器中
问问题
892 次
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 回答