如何在SQL Server中从文本中搜索和提取子字符串?

问题描述 投票:0回答:2

我在excel中有公式,我想在SQL Server中使用它。我可以用什么查询?

enter image description here

Excel中的公式:

=IFERROR(MID(A2,FIND("=",A2,8)+1,FIND("Logic",A2,8)-4-FIND("=",A2,8)+1),MID(A2,FIND("=",A2,8)+1,5))

什么是SQL服务器中的公式?

感谢您的关注,对不起我的英语不好。

sql sql-server
2个回答
1
投票

你可以试试这个。

SELECT CASE WHEN CHARINDEX('Logic',A2, 8) > 0 
    THEN SUBSTRING( A2, CHARINDEX( '=',A2, 8) + 1 , CHARINDEX('Logic',A2, 8) - 4 - CHARINDEX( '=',A2,8) + 1 ) 
    ELSE SUBSTRING( A2, CHARINDEX( '=',A2, 8) + 1 , 5 ) 
    END

0
投票

如果您只想获得相同的结果,则此查询可能适合您。它使用Try-Catch逻辑:

declare @NCELL VARCHAR(200) = 'LABEL=BDGblablabalba,CellID=24539, LogicRNCID=382'

begin try
select isnull((SUBSTRING(@NCELL, CHARINDEX('CellID', @NCELL) + 7, CHARINDEX(', Logic', @NCELL) - (CHARINDEX('CellID', @NCELL) + 7))), 'N/A') AS Result
end try
begin catch
select SUBSTRING(@NCELL, CHARINDEX('CellID', @NCELL) + 7, 200) AS Result
end catch
© www.soinside.com 2019 - 2024. All rights reserved.