【发布时间】:2022-08-15 08:41:21
【问题描述】:
此问题源于使用 ICD-9 和 ICD-10 分类代码。
给定一组可变长度的代码前缀,从表中返回与这些代码匹配的所有记录。假设代码列表足够长,可以存储在查找表中。
例如:
code_prefixes char_length
A12 3
B123 4
我天真的方法是使用SUBSTRING 并列出每个不同的长度,如下所示:
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 总是正确的。
标签: sql sql-server