SQL Query在Inner JOIN期间连接两列

Nir*_*ras 5 sql t-sql sql-server join concatenation

我有表A和表B,表A有几列,包括A1和A2.表B也有几列.我的查询要求我连接A1和A2中的值,然后在B1上进行内连接.

例:

Select * 
From A
INNER JOIN B
ON CONCAT(A1,A2) = B1.
Run Code Online (Sandbox Code Playgroud)

显然这不是它应该如何工作的.有人可以帮我解决这个疑问吗?

谢谢.

And*_*nov 17

试试这个:

Select *  
From A 
INNER JOIN B 
ON A1 + A2 = B1
Run Code Online (Sandbox Code Playgroud)

  • @ user583227,你为什么接受佩德罗对安德烈的回答?看起来他更直接地回答了你的问题并且得到了最多的赞成.虽然Pedro的答案看起来更好并且提供了更多细节,但如果你的查询B1是555ABC,A1是555,而A2是ABC,他的答案不会因为增加空间而起作用 - 而安德烈会很好.只是好奇你的选择背后是否有其他推理(我不知道任何一个用户) (3认同)
  • @ user583227 - 这是两种方式的答案,如果性能不好,您应该规范化表并正确索引它们.+1 (2认同)
  • 我同意Kevin和Lamak的观点.Andrey的查询不会导致性能问题.这是引起问题的表结构,而不是查询.佩德罗的回答肯定是非常好的措辞,尽管是对不同问题的回答. (2认同)