Sql server 查找在特定字符串位置具有字符匹配的机器

Sql server 查找在特定字符串位置具有字符匹配的机器,sql-server,string,sql-server-2012,match,Sql Server,String,Sql Server 2012,Match,我正在处理一个查询,我只想返回第7个字符为“K”的计算机名 除了我的另外两个where语句之外,我正在尝试返回运行enterprise的所有工作站,这些工作站的第7个字符是“K”。完整答案取决于您的SQL方言,但您可能希望在where子句中使用类似于T-SQL的CHARINDEX函数的内容: where os.Caption0 like '%Enterprise%' and os.Caption0 not like '%server%' AND CHARINDEX('K', s.Name0) =

我正在处理一个查询,我只想返回第7个字符为“K”的计算机名


除了我的另外两个where语句之外,我正在尝试返回运行enterprise的所有工作站,这些工作站的第7个字符是“K”。

完整答案取决于您的SQL方言,但您可能希望在where子句中使用类似于T-SQL的CHARINDEX函数的内容:

where os.Caption0 like '%Enterprise%'
and os.Caption0 not like '%server%'
AND CHARINDEX('K', s.Name0) = 7

,其中一些适用于其他方言。

完整答案取决于您的SQL方言,但您可能希望在where子句中使用类似于T-SQL的CHARINDEX函数的内容:

where os.Caption0 like '%Enterprise%'
and os.Caption0 not like '%server%'
AND CHARINDEX('K', s.Name0) = 7

,其中一些适用于其他方言。

您使用的是什么数据库?这是SQL server 2012,我正在使用SQL server管理研究。在名称周围使用方括号和空格是一种很好的做法。用名字加空格不是个好主意。好提示,谢谢,我以后会这么做的。我尝试了下面推荐的charindex解决方案,但当我知道有更多的机器运行Windows Enterprise并以“K”作为第7个字符时,它只能拉动35台左右的机器。有什么想法吗?你在使用什么数据库?这是SQL server 2012,我正在使用SQL server管理研究。在名称周围使用方括号加空格是一种很好的做法。用名字加空格不是个好主意。好提示,谢谢,我以后会这么做的。我尝试了下面推荐的charindex解决方案,但当我知道有更多的机器运行Windows Enterprise并以“K”作为第7个字符时,它只能拉动35台左右的机器。有什么想法吗?谢谢,出于某种原因,查询只返回35台左右的机器。我知道,运行windows enterprise的计算机要比运行windows enterprise的计算机多得多,第7个字符是“K”。你知道我可能做错了什么吗?试着删除WHERE子句的其他部分。您可能会发现os.Caption0字段的填充方式与您的假设不一致;删除这些过滤器可以让您查看数据并了解如何调整查询。谢谢,出于某种原因,查询只返回35台左右的计算机。我知道,运行windows enterprise的计算机要比运行windows enterprise的计算机多得多,第7个字符是“K”。你知道我可能做错了什么吗?试着删除WHERE子句的其他部分。您可能会发现os.Caption0字段的填充方式与您的假设不一致;删除这些过滤器将使您能够查看数据并了解如何调整查询。