首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >保存与可变长度代码匹配的记录

保存与可变长度代码匹配的记录
EN

Stack Overflow用户
提问于 2022-08-15 00:41:21
回答 2查看 35关注 0票数 -1

这个问题源于使用ICD-9和ICD-10分类代码。

给出一组可变长度的代码前缀,从匹配这些代码的表中返回所有记录。假设代码列表足够长,足以存储在查找表中。

例如:

代码语言:javascript
复制
code_prefixes char_length
   A12          3
   B123         4

我天真的做法是使用SUBSTRING并按以下方式列出每个不同的长度:

代码语言:javascript
复制
SELECT *
FROM main_table
WHERE SUBSTRING(code, 1, 3) IN (SELECT code_prefix FROM lookup_table WHERE char_length = 3)
OR SUBSTRING(code, 1, 4) IN (SELECT code_prefix FROM lookup_table WHERE char_length = 4)

但这需要对code_prefix中的每个不同长度值进行复制,并且假定char_length总是正确的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-08-15 01:04:54

您只需在一个LIKE子查询中使用EXISTS

代码语言:javascript
复制
SELECT *
FROM main_table AS M
WHERE EXISTS (SELECT 1
    FROM lookup_table AS L
    WHERE M.code LIKE L.code_prefix + '%'
);
票数 1
EN

Stack Overflow用户

发布于 2022-08-15 00:41:21

到目前为止,我想出的最好的解决方案如下:

代码语言:javascript
复制
SELECT *
FROM main_table AS M
WHERE EXISTS (
    SELECT 1
    FROM lookup_table AS L
    WHERE SUBSTRING(M.code, 1, LEN(L.code_prefix)) = L.code_prefix
)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73356034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档