这看起来非常简单,但出于某种原因,我找不到任何关于如何做的事情。我正在使用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界面的搜索结果中查看以找到所需的值。原因是我希望在没有它们的其他行的上下文中看到这些值。
答案 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 + '%'