我需要在sql server中提取部分字符串。可以说我在列中有这个字符串......
RewriteCond %{QUERY_STRING} ^eId=(.*)?(&.*)? [NC]
RewriteRule ^/xyz/nx/crm /abc/en-us/xyz/nx/crm_eId_%1.html [PT,L]
如何提取与Name2相同的文本,例如Microsoft?
答案 0 :(得分:0)
declare @string varchar(100) = 'Name1=Bill Gates&Name2=Microsoft&Address1=The streetadress'
select replace(PARSENAME (replace(@string, '&', '.'), 2), 'Name2=', '');
答案 1 :(得分:0)
处理此问题的一种老式方法是使用CHARINDEX
和SUBSTRING
等基本字符串函数。
SELECT
SUBSTRING(col,
CHARINDEX('Name2', col) + 6,
CHARINDEX('&', col, CHARINDEX('Name2', col)) -
CHARINDEX('Name2', col) - 6) AS name
FROM yourTable
请注意,此解决方案假定键值对按您显示的顺序修复。我的查询在第二个名称之后使用ambersand作为终止标记。如果不存在,例如如果Name2
可能是字符串中的 last 键,那么我的查询就必须更新。
在这里演示: