12

我正在尝试使用字符串拆分到我的 sql 条件中接近的位置的结果

我有一个有varchar列的表。我正在尝试过滤只显示一个单词的结果。

例如。如果该表具有“ABC DEF”、“XYZ”、“EGF HIJ”之类的值,并且我希望只得到“XYZ”作为结果。

我不确定在这里使用什么,尽管拆分列中的每个值将是一种方法。但不确定如何将其用作条件

我看过一些像下面这样的拆分样本。

DECLARE @Str VARCHAR(100) ='Test Word'

SELECT SUBSTRING(@Str , 1, CHARINDEX(' ', @Str ) - 1) AS [First],
       SUBSTRING(@Str , CHARINDEX(' ', @Str ) + 1, LEN(@Str )) AS [Last]
4

3 回答 3

9

在包含的列中仅获取“XYZ”

tableName.fieldName
'ABC DEF'
'XYZ'
'EGF HIJ' 

做这个

SELECT * 
FROM tableName
WHERE CHARINDEX(' ',fieldname) = 0
于 2013-10-04T14:50:36.653 回答
3

这也是工作

select SUBSTRING(EmpName,0,CHARINDEX(' ',EmpName)),SUBSTRING(EmpName,CHARINDEX(' ',EmpName),LEN(EMPNAME)) 
from tblemployee
于 2019-10-22T05:01:12.863 回答
2

这应该有效:

DECLARE @table TABLE (string VARCHAR(20))
INSERT @table VALUES ('ABC DEF')
INSERT @table VALUES ('XYZ')
INSERT @table VALUES ('EGF HIJ')

SELECT * FROM @table
WHERE CHARINDEX(' ', string) = 0
于 2013-10-04T14:53:09.660 回答