【问题标题】:Return Word in String - SQL返回字符串中的单词 - SQL
【发布时间】:2018-09-15 05:47:25
【问题描述】:

我正在使用 SQL Server,如何从 SQL 中的以下字符串返回帐号?以下是 NVarchar() 的 1 列和 1 个字符串

银行名称:eewweew 开姆尼茨银行账户地址:weweweewew 茨维考 12345 dfdfdfdfd fdfdfdfdf。 1-3 受益人姓名:Roswitha Haupt-Elster 帐号:TheValueToReturn SWIFT/BIC 代码: VVHHH 排序代码:sfsffsfsa IBAN:wdffwfafsafsafs

因此,仅从上面的字符串返回:TheValueToReturn

将返回 Number:SWIFT

之间的值的东西

【问题讨论】:

  • 不知道为什么有人在这个问题上标记了我!
  • 你的问题很清楚,我相信有些人只是为了好玩而做负面标记,我昨天已经写信给版主。我们都应该给 cmet 投反对票,这就是职业操守
  • 我同意,这样我就可以知道我应该如何提问。
  • 投反对票的不是我,但我认为这是因为您没有表现出任何努力自己解决问题。
  • 过去一个小时我一直在尝试自己做,做了很多谷歌搜索,没有什么能解决我的问题。

标签: sql sql-server substring charindex


【解决方案1】:

SQL Server 不是最好的办法,我个人会在表示层这样做。

但是,这适用于我们的示例,但是,您可能需要进行更多测试。它还假设每一行都有一个帐号(以'Account Number:' 为前缀),并且在该值之后还有更多数据:

CREATE TABLE #Sample (JunkText nvarchar(4000));

INSERT INTO #Sample
VALUES('Name: eewweew Chemnitz Bank Account Address: weweweewew Zwickau 12345 dfdfdfdfd fdfdfdfdf. 1-3 Beneficiary Name: Roswitha Haupt-Elster Account Number: TheValueToReturn SWIFT/BIC Code: VVHHH SortCode: sfsffsfsa IBAN: wdffwfafsafsafs')
GO
SELECT *, SUBSTRING(JunkText, PI1.AN + LEN('Account Number: '), CI1.AN - (PI1.AN -2)) As AccountNumber
FROM #Sample
     CROSS APPLY (VALUES(PATINDEX('%Account Number:%',JunkText))) PI1(AN)
     CROSS APPLY (VALUES(CHARINDEX(' ',JunkText, PI1.AN + LEN('Account Number: ')))) CI1(AN)

GO

DROP TABLE #Sample;

【讨论】:

    【解决方案2】:

    这可能会对您有所帮助:

    DECLARE @String VARCHAR(MAX)
    
    SET @String = 'Bank Name: eewweew Chemnitz Bank Account Address: weweweewew Zwickau 12345 dfdfdfdfd fdfdfdfdf. 1-3 Beneficiary Name: Roswitha Haupt-Elster Account Number: TheValueToReturn SWIFT/BIC Code: VVHHH SortCode: sfsffsfsa IBAN: wdffwfafsafsafs'
    
    SELECT REPLACE(SUBSTRING(LEFT(@String, CHARINDEX('SWIFT', @String) - 1), CHARINDEX('Number:', LEFT(@String, CHARINDEX('SWIFT', @String) - 1)), LEN(LEFT(@String, CHARINDEX('SWIFT', @String) - 1))), 'Number: ', '') 
    

    【讨论】:

    • 谢谢!这样就可以了!
    【解决方案3】:
    DECLARE @string VARCHAR(MAX) = 'Bank Name: eewweew Chemnitz Bank Account Address: weweweewew Zwickau 12345 dfdfdfdfd fdfdfdfdf. 1-3 Beneficiary Name: Roswitha Haupt-Elster Account Number: TheValueToReturn SWIFT/BIC Code: VVHHH SortCode: sfsffsfsa IBAN: wdffwfafsafsafs'
    
    
    SELECT LEFT(LTRIM(RTRIM( REPLACE(@string, LEFT(@string, CHARINDEX('Account Number:', @string) + 14), ''))), CHARINDEX(' ', LTRIM(RTRIM( REPLACE(@string, LEFT(@string, CHARINDEX('Account Number:', @string) + 14), ''))))) 
    

    【讨论】:

      猜你喜欢
      • 2014-03-29
      • 2020-03-04
      • 1970-01-01
      • 1970-01-01
      • 2018-05-14
      • 1970-01-01
      • 1970-01-01
      • 2017-02-28
      • 1970-01-01
      相关资源
      最近更新 更多