对部分列数据进行 SQL 联接 (SQL Server)

标签 sql sql-server join

如果重要的话,两列都是tinyint

表1

Version
--------
111115
222226
333337

表2

ID  Year
--------
5   2015
6   2016
7   2017

如果表 2 中的 ID 等于表 1 中版本字段中的最后一个值,我需要加入该 ID。

版本 111115 将加入 ID 5。我知道如何选择此类内容,但加入可行吗?结果是:

111115  5  2015

TIA!

最佳答案

您可以使用RIGHT()函数来执行此操作:

SELECT *
FROM Table1 A
INNER JOIN Table2 B on RIGHT(A.Version,1) = B.ID

不过,我可能会避免这样做。这是一个错误的数据库设计。也许向表 1 添加一列 ID,并使用:

UPDATE Table1
SET ID = RIGHT(Version,1)

关于对部分列数据进行 SQL 联接 (SQL Server),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37756468/

相关文章:

sql - 通过链接表组合相互关联的表,不用担心链接表是否缺少某些数据

sql 查询连接多个表 - 太慢(8 个表)

mysql - SQL 检索信息

MySQL 问题 - 我想删除任何括号内的所有文本

sql-server - SQL Server Profiler - 如何过滤跟踪以仅显示来自一个数据库的事件?

mysql - 如何合并表以选择性地将记录添加到 MySQL 中的第三个表?

sql - SAS PROC SQL 在一个语句中不包含多个值

mysql - #1034-137 在向表中添加新列时修复表

sql-server - 创建带有空值参数的存储过程

json - SQL Server 2016 - 如何从 JSON 中选择整数数组