从sql server中的字符串中提取单词

时间:2017-06-08 09:47:08

标签: sql sql-server substring

我需要在sql server中提取部分字符串。可以说我在列中有这个字符串......

RewriteCond %{QUERY_STRING} ^eId=(.*)?(&.*)? [NC]
RewriteRule ^/xyz/nx/crm /abc/en-us/xyz/nx/crm_eId_%1.html [PT,L]

如何提取与Name2相同的文本,例如Microsoft?

2 个答案:

答案 0 :(得分:0)

declare @string varchar(100) = 'Name1=Bill Gates&Name2=Microsoft&Address1=The streetadress'


select replace(PARSENAME (replace(@string, '&', '.'), 2), 'Name2=', '');

答案 1 :(得分:0)

处理此问题的一种老式方法是使用CHARINDEXSUBSTRING等基本字符串函数。

SELECT
    SUBSTRING(col,
              CHARINDEX('Name2', col) + 6,
              CHARINDEX('&', col, CHARINDEX('Name2', col)) -
                  CHARINDEX('Name2', col) - 6) AS name
FROM yourTable

请注意,此解决方案假定键值对按您显示的顺序修复。我的查询在第二个名称之后使用ambersand作为终止标记。如果不存在,例如如果Name2可能是字符串中的 last 键,那么我的查询就必须更新。

在这里演示:

Rextester