【问题标题】:Separate a value from string in SQL Server 2012 [duplicate]在 SQL Server 2012 中从字符串中分离一个值 [重复]
【发布时间】:2020-08-11 17:27:24
【问题描述】:

这是我的字符串/列值:

ReferenceId=678&MobileNo=226789&Pnumber=9878&SIB=121314&.........&PIN=34&....

有很多领域。我对上述领域感兴趣。 如何在 SQL Server 2012 中分离/获取它们的值? 2012年不支持string_split()函数。

【问题讨论】:

标签: sql sql-server sql-server-2012


【解决方案1】:

在此处创建@Dave 建议的UFN_STRING_SPLIT 函数link

create FUNCTION [dbo].[UFN_STRING_SPLIT]
(
   @List       NVARCHAR(MAX),
   @Delimiter  NVARCHAR(255)
)
RETURNS TABLE
WITH SCHEMABINDING
AS
   RETURN 
   (  
      SELECT Item = y.i.value('(./text())[1]', 'nvarchar(max)')
      FROM 
      ( 
        SELECT x = CONVERT(XML, '<i>' 
          + REPLACE(@List, @Delimiter, '</i><i>') 
          + '</i>').query('.')
      ) AS a 
      CROSS APPLY x.nodes('i') AS y(i)
   );

测试你的代码:

select
    Left(Item, charindex('=', Item, 0) - 1) as FielName,
    right(Item, len(Item) - charindex('=', Item, 0)) as [Value]
from
    dbo.UFN_STRING_SPLIT('ReferenceId=678&MobileNo=226789&Pnumber=9878&SIB=121314', '&')

【讨论】:

  • 你好 Eliseu,这对我有很大帮助。但是如何找到谁的值是什么。就像 678 是 ReferenceId 而 Pnumber 是 9878。如何存储在变量中。因为想在进一步处理中使用它
  • 嗨@smita!我刚刚更新了答案,在调用UFN_STRING_SPLIT函数的部分,现在查询返回FielNameValue
猜你喜欢
  • 1970-01-01
  • 2018-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多