Sql server 如何在SQL Server中的已知字符之间剪切子字符串
如何在SQL Server中的两个已知字符序列之间剪切子字符串 例如:这是表中我的字符串列 'DateTimeFormat=dd.MM.yyyy&ReportDate\u FromDate=08/11/2014 00:00:00&ReportDate\u ToDate=08/12/2014 23:59:00&Reports\u Brand:isnull=true&Reports\u Portal:isnull=true&Reports\u Currency:isnull=true&ReportBy=WEEK&OrderBy:isnull=true&IncludeDataForLastHour:isnull=true&ServerName:isnull=true&User=pirman1&Reports\u Export=False&Internal' 我只想看到介于&User=和以下&.之间的pirman1,它是和的组合,应该起作用:Sql server 如何在SQL Server中的已知字符之间剪切子字符串,sql-server,tsql,Sql Server,Tsql,如何在SQL Server中的两个已知字符序列之间剪切子字符串 例如:这是表中我的字符串列 'DateTimeFormat=dd.MM.yyyy&ReportDate\u FromDate=08/11/2014 00:00:00&ReportDate\u ToDate=08/12/2014 23:59:00&Reports\u Brand:isnull=true&Reports\u Portal:isnull=true&Reports\u Currency:isnull=true&ReportB
SELECT SUBSTR(str_col, start_pos, end_pos - start_pos + 1)
FROM (SELECT str_col,
CHARINDEX('&User=', str_col) AS start_pos,
CHARINDEX('&', str_col, CHARINDEX('&User=', str_col) + 1) AS end_pos
FROM my_table) t
我已经测试了这段代码,对Mureinik的代码稍加修改,这段代码运行良好
SELECT REPLACE(REPLACE(SUBSTRING(string, start_pos, end_pos - start_pos
+1), '&User=', ''), '&', '')
FROM (SELECT string,
CHARINDEX('&User=', string) AS start_pos,
CHARINDEX('&', string, CHARINDEX('&User=', string)+1) AS end_pos
FROM dbo.TestTbl
) AS abc
在你的前端做这件事……你所说的“你的前端”是什么意思?在你的应用程序中——C、VB.NET、PHP、Ruby——不管你用什么。对于T-SQL来说,这不是一项好工作,因为它在字符串操作方面相当薄弱……这给了我&User=pirman1。如何剪切&User=选择子字符串[Parameters],开始位置,结束位置-开始位置,从选择[Parameters],CHARINDEX'&User=',[Parameters]中选择[Parameters]作为开始位置,CHARINDEX'&User=',[Parameters],CHARINDEX'&User=',[Parameters]+1作为表1 t的末端位置