Sql 按空格分割字符串
我正在尝试使用字符串拆分的结果,使其在sql条件中接近 我的表有一个Sql 按空格分割字符串,sql,sql-server-2008,split,Sql,Sql Server 2008,Split,我正在尝试使用字符串拆分的结果,使其在sql条件中接近 我的表有一个varchar列。我正在尝试过滤只显示一个单词的结果 例如,如果表中有像“ABC DEF”、“XYZ”、“EGF HIJ”这样的值,那么我希望得到的结果只有“XYZ” 我不确定在这里使用什么,尽管在列中拆分每个值是一种方法。但我不知道我怎么能把它作为一个条件 我看了一些分裂的样本如下 DECLARE @Str VARCHAR(100) ='Test Word' SELECT SUBSTRING(@Str , 1, CHARIN
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]
若要在中仅获取包含
tableName.fieldName
'ABC DEF'
'XYZ'
'EGF HIJ'
这样做
SELECT *
FROM tableName
WHERE CHARINDEX(' ',fieldname) = 0
这应该起作用:
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
这也是一项工作
这个答案可以帮助你(如果你坚持走“字符串拆分”的道路):@tEsTA与这个问题无关(据我所知)@Hogan:“我不确定在这里使用什么,尽管在列中拆分每个值是一种方法”。所以我同意不需要标记,但它确实与这个问题有关(这是一种可能的解决方法,即使很麻烦)。@Hogan:顺便说一句,“标记化”就是这个意思。特别是当你错了的时候,不需要嘲笑。这不是tokenize的意思。考虑这个字符串:“<代码> 1 + 1=2 /代码>”这里的标记与空格无关。难道这不是CAREQUEST(‘,字段名’=0)吗?使用<代码>,其中字符索引('',LtrIM(rTrimm(FieldNeX)))=0 < /Cord>这很好!huMptyduMpty-你明白了
=0
将为您提供带有一个单词的项目,>0
将为您提供带有两个单词的项目——是的,如果您有前导空格或尾随空格,则需要删除这些空格。
select SUBSTRING(EmpName,0,CHARINDEX(' ',EmpName)),SUBSTRING(EmpName,CHARINDEX(' ',EmpName),LEN(EMPNAME))
from tblemployee