首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Microsoft 2016 -需要结合使用联接的SQL查询.在Col1上最像Col2

Microsoft 2016 -需要结合使用联接的SQL查询.在Col1上最像Col2
EN

Stack Overflow用户
提问于 2020-10-13 04:46:07
回答 1查看 43关注 0票数 1

我在2016年微软Access公司工作。我有一个数据表数据,其中包含了数千行数据。我有一个查找表查找,它包含已知的所有项目ID。这些表应该结合在项目ID上,这是一个字符串字段。通常,我会使用以下方法连接这些表:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT * FROM [Data] LEFT JOIN [Lookup] ON [Data].[ProjectID] = [Lookup].[ProjectID]

问题是,字段是要查找的更长的字符串。作为一个例子

数据:

  • PROJECT.TS.01.004.005

查找:

  • PROJECT.TS
  • PROJECT.TS.01
  • PROJECT.TS.02

我尝试使用以下方法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 SELECT * FROM [Data] LEFT JOIN [Lookup] ON [Data].[ProjectID] LIKE [Lookup].[ProjectID] + '*'

唯一的问题是,查找表中有多个“类似”数据字段的条目。我需要能够加入的条目,不仅是“喜欢”,而且有最大的长度,所有的那些是“喜欢”。

我真正需要的似乎是调用一个“最类似”的函数,但在我的SQL语法知识中,它并不存在。

对于如何有效地连接这两张桌子,有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-13 10:15:32

考虑:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT * FROM [Data] LEFT JOIN [Lookup] ON [Data].[ProjectID] LIKE [Lookup].[ProjectID] + '*' 
WHERE Len(Lookup.ProjectID) = DMax("Len(ProjectID)", "Lookup", "'" & Data.ProjectID & "' LIKE ProjectID & '*'");

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT * FROM [Data] LEFT JOIN [Lookup] ON [Data].[ProjectID] LIKE [Lookup].[ProjectID] + '*' 
WHERE Len(Lookup.ProjectID) = (
    SELECT Max(Len(Lookup.ProjectID)) FROM Lookup WHERE Data.ProjectID LIKE Lookup.ProjectID & "*");
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64335564

复制
相关文章
SQL语句汇总(终篇)—— 表联接与联接查询
既然是最后一篇那就不能只列出些干枯的标准语句,更何况表联接也是SQL中较难的部分,所以此次搭配题目来详细阐述表联接。
_DIY
2020/05/29
1.4K0
SQL语句汇总(终篇)—— 表联接与联接查询
T-SQL基础(五)之增删改
在前面的文章中对T-SQL的查询做了基本总结,接下来我们看下SQL中的另外一个常用操作——数据的修改。
雪飞鸿
2018/12/25
1.1K0
ROWNUMBER() OVER( PARTITION BY COL1 ORDER BY COL2)/ ROWNUMBER() OVER( PARTITION BY COL1 ORDER BY CO
ROWNUMBER() OVER( PARTITION BY COL1 ORDER BY COL2)用法      今天在使用多字段去重时,由于某些字段有多种可能性,只需根据部分字段进行去重,在网上看到了rownumber() over(partition by col1 order by col2)去重的方法,很不错,在此记录分享下: ---- row_number() OVER ( PARTITION BY COL1 ORDER BY COL2) 表示根据COL1分组,在分组内部根据 COL2排序,而
学到老
2018/03/16
9400
ROWNUMBER() OVER( PARTITION BY COL1 ORDER BY COL2)/  ROWNUMBER() OVER( PARTITION BY COL1 ORDER BY CO
ROWNUMBER() OVER( PARTITION BY COL1 ORDER BY COL2)/ ROWNUMBER() OVER( PARTITION BY COL1 ORDER BY CO
ROWNUMBER() OVER( PARTITION BY COL1 ORDER BY COL2)用法      今天在使用多字段去重时,由于某些字段有多种可能性,只需根据部分字段进行去重,在网上看到了rownumber() over(partition by col1 order by col2)去重的方法,很不错,在此记录分享下:
学到老
2019/02/13
3.1K0
这是我见过最有用的Mysql面试题,面试了无数公司总结的(内附答案)
1.什么是数据库? 数据库是组织形式的信息的集合,用于替换,更好地访问,存储和操纵。 也可以将其定义为表,架构,视图和其他数据库对象的集合。 2.什么是数据仓库? 数据仓库是指来自多个信息源的中央数据存储库。 这些数据经过整合,转换,可用于采矿和在线处理。 3.什么是数据库中的表? 表是一种数据库对象,用于以保留数据的列和行的形式将记录存储在并行中。 4.什么是数据库中的细分? 数据库表中的分区是分配用于在表中存储特定记录的空间。 5.什么是数据库中的记录? 记录(也称为数据行)是表中相关数据的有序集
用户7466307
2021/01/27
27.2K0
T-SQL基础(五)之增删改
在前面的文章中对T-SQL的查询做了基本总结,接下来我们看下SQL中的另外一个常用操作——数据的修改。
雪飞鸿
2018/12/11
1.3K0
【T-SQL基础】02.联接查询
概述: 本系列【T-SQL基础】主要是针对T-SQL基础的总结。 本篇主要是对多表查询基础的总结。 查询语句的FROM字句在逻辑上是第一条要处理的字句,在FROM字句内可以用表运算符对输入的表进行操作
悟空聊架构
2018/05/18
3K0
使用联接和子查询来查询数据
--Chapter 3 使用联接和子查询来查询数据 --内容提要 go /* (一)、使用联接查询数据 1. 内联接 2. 外联接 3. 交叉联接 4. 等值联接 5. 自联接 */ go /* (二)、使用子查询查询数据 1. 使用比较运算符,IN和EXISTS关键字 2. 使用修改过的比较运算符 3. 使用聚合函数 4. 使用嵌套子查询 5. 使用关联子查询 6. APPLY运算符 */ go /* (三)、管理结
赵腰静
2018/03/09
2.2K0
mongodb与sql在查询上的区别
之前在“这个场景更适合使用NoSQL”文章中通过和SQL的对比 介绍了NOSQL数据存储结构的特点,一位朋友看后希望再介绍下NOSQL查询方面的特点 这里以NOSQL中比较典型的mongodb数据库为例,先从用法上看下mongodb的操作方式,以后会更深入的介绍mongodb查询方面的细节 下面从3个方面看下mongodb的查询方式 (1)简单查询 类似于sql的 select * from table; (2)条件查询 类似于sql的 select * from table where
dys
2018/04/02
2K0
row_number() OVER (PARTITION BY COL1 ORDER BY COL2)「建议收藏」
row_number() OVER (PARTITION BY COL1 ORDER BY COL2) –表示依据COL1分组,在分组内部依据 COL2排序。而此函数返回的值就表示每组内部排序后的顺序编号(组内连续的唯一的)
全栈程序员站长
2022/07/07
2980
编写 SQL 的排除联接
有两个表,就叫源表和目标表吧。它们有一个相同的字段,通过该字段可以把源表和目标表关联在一起,我们希望从源表中检索到的记录里的关联字段的值没有存在目标表中。举个例子,源表 dept,目标表 emp,获取 dept 表中部门编号不在 emp 表中的记录。在检查两张表的数据后,我们发现 emp 表中没有部门编号 40 的数据。
白日梦想家
2020/07/20
1.2K0
编写 SQL 的排除联接
《SQLSERVER2012之T-SQL教程》T-SQL单表查询(二)「建议收藏」
表结构与数据:https://github.com/XuePeng87/TSQLV4
全栈程序员站长
2022/07/19
1.8K0
关于分区表的在线重定义(r5笔记第98天)
目前项目中有一个问题,存在一个分区表,因为分区规则的问题,使得分区表中的数据分布很不均匀,数据都分区在了默认的maxvalue分区上。现在需要重新划分分区。从常规的角度来看,这中重新分区的问题一般有以下几个步骤。 1.数据备份,采用exp/expdp或者ctas的方式 2.truncate 分区表的数据 3.删除多余的分区,只保留maxvalue的分区 4.使用split partition进行分区 5.使用开始的数据备份,把数据导入。 对于这个问题,如果采用这种方式,势必会需要一定的downtime,如何
jeanron100
2018/03/16
5690
在标准MySQL 5.6上查询没有使用过的索引的SQL
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wzy0623/article/details/53895722
用户1148526
2019/05/25
1.2K0
《MSSQL2008技术内幕:T-SQL语言基础》读书笔记(下)
  所谓透视(Pivoting)就是把数据从行的状态旋转为列的状态的处理。其处理步骤为:
Edison Zhou
2018/08/20
9K0
《MSSQL2008技术内幕:T-SQL语言基础》读书笔记(下)
在 Ubuntu 上安装Microsoft Edge[通俗易懂]
1.要安装Microsoft Edge,你首先需要在终端中运行这些命令,在设备上设置微软的存储库。
全栈程序员站长
2022/09/13
2.3K0
mysql复合索引、普通索引总结
对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分。例如索引是key index (a,b,c). 可以支持a | a,b| a,b,c 3种组合进行查找,但不支持 b,c进行查找 .当最左侧字段是常量引用时,索引就十分有效。下面用几个例子对比查询条件的不同对性能影响.
袁新栋-jeff.yuan
2020/08/26
2.8K0
mysql复合索引、普通索引总结
搭建 Microsoft SharePoint 2016
本文档介绍如何在云服务器实例上搭建 Microsoft SharePoint 2016。
用户10230909
2023/04/26
2.5K0
MySQL 的更新语句
本文将和大家分享 MySQL 更新语句的一些小众语法,及笔者在使用多表关联更新遇到的一些问题。
白日梦想家
2021/01/13
1.5K0
MySQL 的更新语句
新特性解读 | MySQL 8.0.23 主要更新一览
爱可生交付服务部 DBA,主要负责 MySQL 及 Redis 的日常问题处理,参与公司数据库培训的教研授课及开源社区的运营工作。
爱可生开源社区
2021/02/01
7700

相似问题

其中col1,col2 IN (.)[使用复合主键的SQL子查询]

92

col1和ORDER BY col2是否会在(col1,col2)上使用复合键?

14

在SQL (col1,col2)x做什么?

22

索引(col1,col2)和索引(col2,col1)

11

(col1,col2,.)

16
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文