MSSQL根据此模式选择子字符串



我必须问你一些与MSSQL有关的问题。

我有一个名为Command(VARCHAR)的列,它是某个名为TB_Commander的表的一部分。

此列包含如下结果,例如(rows):

1.Delete o:2312312, c=312321
2.Add o:342342344, c=5

顺便说一句。我想做的是选择子字符串从这行,其中只包括'o:2312312'和行号2,只有'o:342342344'。

我被卡在这里了:

    select 
    SUBSTRING(Command,PATINDEX('%1%',Command), 
    CHARINDEX(',',Command,PATINDEX('%o=%',Command))-0) as OperationID 
    from TB_Commander 
    where IdRow = 921321

对不起我的英语…

试试;)

select
substring(command, 
    patindex('%o:%', command) - 2, 
    patindex('%, c%', command)) as OperationID 
from TB_Commander 
where IdRow = 921321

此解决方案仅返回您需要的数据,并考虑到用于提取所需数据的模式的长度:

SELECT
    SUBSTRING(command, 
    PATINDEX('%o:%', command) + LEN('o:'), 
    PATINDEX('%, c%', [FiscalizationRequest]) - PATINDEX('%o:%',[FiscalizationRequest]) - LEN('o:')
    ) as OperationID 
FROM TB_Commander;
declare @i int
declare @str varchar(1000)
set @str='interesting data'
declare @pattern varchar(1000)
set @pattern='eres'
SELECT @i=PATINDEX('%ter%', @str);  
select substring(@str,@i-4,len(@pattern)+4)

相关内容

  • 没有找到相关文章

最新更新