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

时间:2018-02-28 10:14:53

标签: sql sql-server

我在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 server中的公式是什么?

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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