我正在使用SQL Server 2008,并且我有两个表要加入。我提供了下面的内容,显示了我的数据的外观。我想加入给定列上的两个表,但是我怎样才能用表B中数字前面的“ID”来做到这一点?我正在考虑加入,但我不知道该怎么做。在sql中连接表的数据并不完全匹配
喜欢的东西...
Select *
From TableA AS A
Left Join TableB AS B
On A.ColumnA = B.ColumnB
但是,这是行不通的,因为数字不完全匹配。
TableA ColumnA
123
456
789
TableB ColumnB
ID123
ID456
ID789
我希望我说得够清楚。有什么建议么?
' 。 – DaaaahWhoosh 2015-01-20 19:37:18
@DaaaahWhoosh似乎有一个很好的建议。根据您的数据库,您可能需要使用“||”连接字符串而不是“+”。另外,如果这些数字实际上是一个数字类型,那么您可能需要首先将其转换为字符串类型。另一种选择是添加一个适合加入两个表的计算列的视图。 – unigeek 2015-01-20 19:43:23
对于所有数据库,此类代码不应出现在生产中。在字段上应用函数可防止数据库使用任何索引,从而导致全表扫描。 *为什么*你是否尝试以这种方式加入餐桌?更好的选择是拆分ColumnB,可能使用计算列,并在其上创建索引 – 2015-01-20 20:11:55