如何在SSMS结果中搜索字符串/子字符串?

时间:2014-03-20 19:57:57

标签: sql-server ssms ssms-2012

这看起来非常简单,但出于某种原因,我找不到任何关于如何做的事情。我正在使用SQL Server Management Studio 2012,我从SELECT查询返回一组结果,比如select a,b from x。如何在列b中搜索子字符串?在Access中,我将单击该列并键入Ctrl + F,但在SSMS中似乎仅用于搜索SQL本身,而不是结果。如何搜索我的结果?我知道我可以修改我的查询只返回结果,例如:

select a,b from x where b like '*hello*'

但是我想要返回所有返回的行,而不仅仅是那个行。

更新:我得到的答案是关于如何构建一个只选择我正在寻找的行的查询,正如我上面指出的那样,这不是我正在寻找的。我希望返回所有行,并且我想在SSMS界面的搜索结果中查看以找到所需的值。原因是我希望在没有它们的其他行的上下文中看到这些值。

5 个答案:

答案 0 :(得分:10)

在SQL Server Management Studio中,您可以将查询结果输出到文本(CTRL + T),重新运行查询,单击结果窗格,然后使用CTRL + F从未过滤的查询中查找字符串。要将查询结果还原为网格,请按CTRL + D.

答案 1 :(得分:1)

使用:

select a,b from x where b like '%hello%'

或者:

select a,b from x where charindex('hello',b)>0

CHARINDEX比LIKE快得多。

答案 2 :(得分:1)

搜索结果网格时没有原生SSMS功能。

这就是我将此函数添加到我的加载项(SSMSBoost)中的原因:它允许使用通配符搜索结果网格。还有一些其他加载项允许这样做。

答案 3 :(得分:0)

从x

中选择a,substring(b,2,3)为b

答案 4 :(得分:0)

只需将文本片段吐出一个额外的列,该列首先在较大的字符串中找到。为此,请看以下示例:

declare @FindThis varchar(100)

set @FindThis = 'California'

select ID, description, SUBSTRING(description, charindex(@FindThis , description)-40,80) as ItIsFoundHere
     FROM [myTable]
     where description like '%' + @FindThis + '%'