2013-04-15 36 views
0

有问题的数据库是MS SQL。我有这个表和varchar数据类型的这个字段。检索记录哪一个字段值不以空格结尾

字段包含的值,例如:双引号只是用来显示的值空的空间

1. " ABC DEF" 
2. "ABC DEF " 
3. " ABC DEF " 
4. " CCC DEF " 
5. " CCC DEF" 

现在,我该如何检索该字段不以空格结束的所有记录?我认为以下SQL应该可以工作,但它不会!

SELECT * FROM MyTable WHERE MyField like '%DEF' 

它检索所有上述记录。一个工作的SQL应该只能检索记录1和5.

任何帮助,非常感谢。谢谢。

+1

http://msdn.microsoft.com/en-us/library/ms177532.aspx –

回答

0

试试这个,

SELECT * FROM MyTable WHERE '.' + LTRIM(MyField) + '.' = '.' + RTRIM(LTRIM(MyField)) + '.' 

我想这是不正确的方式,但这样会得到所需要的输出

+0

完美的作品!我只需要一个快速的方法来检索满足条件的记录,这是特别的事情。谢谢哥们! –

0

WHERE LEN(RTRIM(MyField的))= LEN(MyField的)

+0

这可能工作,但对我来说,比较LEN可能不准确,因为该场也可以具有相同长度的值。 –

1

怎么样

SELECT * FROM yourTable where yourField LIKE "% " 

NOT LIKE,如果这就是你想要的。

+0

谢谢,但这不起作用。 –

1

您可以使用此,

SELECT * FROM MyTable WHERE PATINDEX('%[ ]',[MyField]) = 0 
0

Len函数,所以你需要做的是这样添加将忽略这些末端空间。最后。

相关问题