3

这看起来很简单,但由于某种原因,我没有找到任何关于如何做到这一点的信息。我正在使用 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 界面的搜索结果中四处查看以找到所需的值。原因是我想在没有它们的其他行的上下文中查看这些值。

4

5 回答 5

15

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

于 2014-03-20T20:12:08.777 回答
3

没有用于搜索结果网格的本机 SSMS 功能。

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

于 2014-03-31T11:39:58.980 回答
0

select a, substring(b, 2, 3) as b from x

于 2014-03-20T19:59:23.627 回答
0

利用:

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

或者:

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

CHARINDEX 比 LIKE 快得多。

于 2014-03-20T20:01:09.813 回答
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 + '%'
于 2020-03-25T22:37:42.983 回答