时间:2016-02-18 07:15:31

标签: sql string sql-server-2008

我需要一个查询来获取其间的空格字符串。

即它不应该返回像

这样的字符串
' abc', 'abc ' and ' abc '

它应该返回像

这样的字符串
'ab c' ,' ab c', 'ab c ' and ' ab c '

我试过以下查询。

select user_fname,user_lname
from user where user_fname like '% %';

但它会返回所有行。

3 个答案:

答案 0 :(得分:3)

%匹配zero or more characters。我建议添加一些_

select user_fname,user_lname
from user where user_fname like '%_ _%';

如果仍然匹配太多,或许:

select user_fname,user_lname
from user where user_fname like '%[^ ] [^ ]%';

哪个匹配零个或多个字符,然后肯定不是空格,空格,绝对不是空格,然后是零个或多个字符。

答案 1 :(得分:2)

试试这个:

SELECT user_fname,user_lname
FROM user 
WHERE user_fname LIKE '% %' AND user_fname NOT LIKE ' %' AND user_fname NOT LIKE '% '

答案 2 :(得分:0)

你也可以尝试这个

select user_fname,user_lname
from user lTrim(rTrim(user_fname)) LIKE '% %'

这将删除user_fname左侧和右侧的空白区域,然后它将尝试查找角色之间的空白区域。