Sql 将搜索条件表应用于值以确定结果
我们正在SQL Server 2016上运行一个数据库。在这个数据库中,我们有一个存储过程,它定期处理接收到的消息记录并在事务表中创建条目。我们最近添加了一个包含位置代码的额外字段,我需要将其映射到一个内部ID值。位置代码将类似于:Sql 将搜索条件表应用于值以确定结果,sql,sql-server,sql-server-2016,Sql,Sql Server,Sql Server 2016,我们正在SQL Server 2016上运行一个数据库。在这个数据库中,我们有一个存储过程,它定期处理接收到的消息记录并在事务表中创建条目。我们最近添加了一个包含位置代码的额外字段,我需要将其映射到一个内部ID值。位置代码将类似于: A.12.10.3 QUAY HD.STACK CDC.MT MT.STACK 我想创建一个规则表来评估接收到的代码并将它们映射到ID。很多位置代码的格式都很相似,所以我想这样: CREATE TABLE LOCATION_MAP ( CRITERIA NVA
A.12.10.3
QUAY
HD.STACK
CDC.MT
MT.STACK
我想创建一个规则表来评估接收到的代码并将它们映射到ID。很多位置代码的格式都很相似,所以我想这样:
CREATE TABLE LOCATION_MAP (
CRITERIA NVARCHAR(50) NOT NULL,
LOCATIONID INT NOT NULL,
CONSTRAINT PK_LOCATION_MAP PRIMARY KEY (CRITERIA, LOCATIONID)
);
然后,表中的值如下所示:
CRITERIA LOCATIONID
A.% 1
CDC.% 2
QUAY 3
HD.% 4
(我使用%符号的方式与SQL Server在类似条件下使用它的方式相同)
将搜索条件应用于字段值的最佳方式是什么?随着时间的推移,您希望表中有多少个值?聪明的快捷方式可能会减少表中记录的数量,但如果语义发生变化,则无法返回完整的列表。如果条目的数量是可管理的,那么只需将所有条目填充到一个表中即可。我正试图通过保持位置代码的标准格式来限制该表(因此一个位置的所有内容都是CDC。例如)。我实际上已经解决了这一问题。。。从(@LOCATIONCODE-LIKE-CRITERIA)工作的位置图中选择*。早该想到这一点!