【发布时间】:2011-11-16 09:25:43
【问题描述】:
我想将两个包含产品的表按它们的描述放在一起
TABLE 1: [..fields..] [DESCRIPTION1] [..fields..]
TABLE 2: [..fields..] [DESCRIPTION2] [..fields..]
SELECT [..fields..] FROM TABLE1,TABLE2
INNER JOIN TABLE1
ON TABLE1.DESCRIPTION1 = TABLE2.DESCRIPTION2
但在很多情况下,两个表中都有以空格结尾的描述,我也想得到它们,所以我尝试了这种方式:
SELECT [..fields..] FROM TABLE1,TABLE2
INNER JOIN TABLE1
ON TABLE1.DESCRIPTION1 = TABLE2.DESCRIPTION2
OR RTRIM(TABLE1.DESCRIPTION1) = RTRIM(TABLE2.DESCRIPTION2)
不会产生错误,但不会带来更多数据。
有人能帮帮我吗?
感谢每一个帮助:)
提前致谢,哈利
【问题讨论】:
-
你怎么知道问题是尾随空格?两个描述列的数据类型是什么?还有你真的要写
FROM table1, table2 INNER JOIN table1吗? -
两者都是varchar,我知道是因为有空格,因为我在TABLE1中发现了很多以空格结尾的描述:|
-
FROM table1, table2 INNER JOIN table1是 Microsoft SQL Server Manager 生成的代码,有没有更简单的方法? -
仅仅因为有空格并不意味着这就是您的联接不返回任何行的原因。特别是因为删除所有尾随空格的 RTRIM 并没有修复它。
-
虽然我不会 100% 感到震惊,但我认为 Management Studio 不会自行生成该代码。你能解释一下你是如何得到它来产生老式内部连接的吗?
标签: sql sql-server sql-server-2005 select join