sql server在一列中的空格之间获取值
我需要帮助获取一列中空格之间的值。对于下面的要求,我需要第一个空格后的值 我有一个包含多行的列: 原始列sql server在一列中的空格之间获取值,sql,sql-server,sql-server-2008,sql-server-2008-r2,Sql,Sql Server,Sql Server 2008,Sql Server 2008 R2,我需要帮助获取一列中空格之间的值。对于下面的要求,我需要第一个空格后的值 我有一个包含多行的列: 原始列 Microsoft SQL Server Oracle DB Server Delete From Table Name SELECT as123 987 预期产量为 预期的_输出 SQL DB From as123 解决这类问题的一个技巧是使用parsename()。假设名称中没有句点,我认为以下内容符合您的要求: select parsename(replace(val, ' ',
Microsoft SQL Server
Oracle DB Server
Delete From Table Name
SELECT as123 987
预期产量为
预期的_输出
SQL
DB
From
as123
解决这类问题的一个技巧是使用
parsename()
。假设名称中没有句点,我认为以下内容符合您的要求:
select parsename(replace(val, ' ', '.'), 2)
这就是一个例子
编辑:
斯盖德斯是对的。如果您一直想要第二个名称,并且可以有三个或四个部分,则可以使用reverse()
:
select reverse(parsename(replace(reverse(val), ' ', '.'), 2))
(其中一个值似乎有四个部分;我最初将其理解为“从TableName中删除”。解决此类问题的一个技巧是使用
parsename()。假设名称中没有句点,我认为以下内容符合您的要求:
select parsename(replace(val, ' ', '.'), 2)
这就是一个例子
编辑:
斯盖德斯是对的。如果您一直想要第二个名称,并且可以有三个或四个部分,则可以使用reverse()
:
select reverse(parsename(replace(reverse(val), ' ', '.'), 2))
(其中一个值似乎有四个部分;我最初将其理解为“从TableName中删除”。试试这个。使用子字符串、Charindex和左字符串函数
获取值
select left(substring(Col,charindex(' ',Col)+1,len(Col)),charindex(' ',substring(Col,charindex(' ',Col)+1,len(Col))))
试试这个。使用子字符串、Charindex和左字符串函数
获取值
select left(substring(Col,charindex(' ',Col)+1,len(Col)),charindex(' ',substring(Col,charindex(' ',Col)+1,len(Col))))
请共享您迄今为止尝试过的查询。您需要使用SubString和CharIndex函数来获得结果。找到第一个空格,找到下一个空格(初始空格后的起始字符),从这两个索引点开始使用SubString。(CHARINDEX)请分享您迄今为止尝试过的查询。您需要使用SubString和CharIndex函数来获得结果。找到第一个空格,找到下一个空格(初始空格后的起始字符),从这两个索引点开始使用SubString。(CHARINDEX)+1,我喜欢这个,但我认为它应该与reverse
:+1,我喜欢这个,但我认为它应该与reverse
一起使用: