SQL Server:选择具有3个匹配字符的列

问题描述 投票:0回答:3

我从2个表中选择记录,其中名为DESC的第一个表列(前3个字符)应与第二个表的项目列匹配。

我想从表1列DESC中获取最后2个字符,将其添加到我的输出中,但表2列项目中不存在最后2个字符。

select SUBSTRING(a.[DESC], 1, 3) 
from Table1 a
join Table2 b on SUBSTRING(a.[DESC], 1, 3) = b.project 

输入:第一个表DESC列:值:'2AB F YY'

第二表项目列:值:'2AB'

预期的输出:返回值2AB的所有记录

列结果:

'2AB YY'

错误的输出:所有从2AB开始的有价记录

sql sql-server stored-procedures stored-functions
3个回答
1
投票
[RIGHT可用于获取字符串的最后N个字符。

SELECT CONCAT(LEFT([DESC], 3),' ', RIGHT([DESC], 2)) FROM Table1 t1 WHERE EXISTS ( SELECT 1 FROM Table2 t2 WHERE t2.project = LEFT(t1.[DESC], 3) ) ORDER BY 1;


-1
投票
© www.soinside.com 2019 - 2024. All rights reserved.