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。

任何帮助深表感谢。谢谢你。

4

6 回答 6

1

你可以用这个,

SELECT * FROM MyTable WHERE PATINDEX('%[ ]',[MyField]) = 0
于 2013-04-15T02:26:46.423 回答
1

关于什么

  SELECT * FROM yourTable where yourField LIKE "% "

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

于 2013-04-15T02:22:20.753 回答
0

LEN(RTRIM(myField)) = LEN(myField)

于 2013-04-15T01:56:59.060 回答
0

len 函数会忽略末尾的空格,因此您需要执行一些操作,例如添加 . 在最后。

于 2013-04-15T17:31:00.543 回答
0

尝试这个,

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

我想这不是正确的方法,但这会给出预期的输出

于 2013-04-15T02:08:43.893 回答
0
SELECT * FROM MyTable where LEN(MyField) = DATALENGTH(MyField)

LEN 和尾随空格

于 2013-04-15T17:54:01.050 回答