sql - 比较字符串中随机放置的信息?

标签 sql sql-server tsql sapb1

我有两个表,如下所示:

PKey      Description    Group
1AF2      Item 1         101
2B2E4     Item 2         102
3G54A1    Item 3         101
4TR7      Item 4         103
像这样:
PKey                      Rate 1    Rate 2
1AF1/1AF2/1AF3            .075      .0089
2B2E1/2B3E3/2B1E4/2B7E5   .068      .049
3G54A1/3H52A4/3G14B2      .025      .0099
4TR3/4TR7/4TR8            .045      .0012
我需要为每个项目 PKey 返回 Rate 1 和 Rate 2,但是制作表 2 的人对 SQL 数据库如何工作以实际使表有用(试图节省时间或其他东西)了解得不够。
有什么简单的方法可以返回信息吗?它总是会被它所在行中其他 PKey 的斜线分开,但它可以落在开头、中间的某个点或行的末尾。此外,某些项目可能根本不会出现在一行中。

最佳答案

所以表 2 中的 PKey 包含单个 PKey 的串联列表。你需要一个字符串操作来匹配记录,比如 '/1AF1/1AF2/1AF3/' like '%/1AF2/%' :

select *
from t1
join t2 on '/' + t2.pkey + '/' like '%/' + t1.pkey + '/%';

关于sql - 比较字符串中随机放置的信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36377772/

相关文章:

用于评估多个相关表的 SQL 语句

sql - 摆脱昂贵的自连接

sql - 根据 SQL Server 中的条件交叉加入组

sql-server - SQL 2005 实例不适用于 DNS

sql - 在 T-SQL 中确定 'this week'

sql - 如何更新#temptable

sql - 从多个范围查找值的最佳方法

mysql - 为什么我不能在我的 MySQL 数据库中保存长文本?

php - 如何获取每行mysql的总和

sql - T-SQL 语句中前缀 N 的含义是什么以及何时应该使用它?