繁体   English   中英

在SQL中,如何在2个特殊字符之间进行子字符串化?

[英]In SQL, how to substring between 2 special characters?

我正在使用SQL Server 2012,我想在下面的字符串的第二个和第三个逗号之间使用一个子字符串。

输入:

IP-TEXT

1CAT, 2DOG, 5.5, AAA, BE TTY
TR2, 5lo, 9.1, LOL, ROFL
PP09, 4432, 6, USA, UK

要求的输出:

OP-TEXT

5.5
9.1
6

任何人都可以帮助进行SQL查询吗?

您可以使用CHARINDEX

SELECT SUBSTRING(IP_TEXT, t2.p+1, t3.p - t2.p - 1) AS OP_TEXT
FROM mytable 
CROSS APPLY (SELECT CHARINDEX(',', IP_TEXT)) AS t1(p)
CROSS APPLY (SELECT CHARINDEX(',', IP_TEXT, t1.p+1)) AS t2(p)
CROSS APPLY (SELECT CHARINDEX(',', IP_TEXT, t2.p+1)) AS t3(p)

交叉应用功能有效。 我还找到了另一种方法来获取2d和3rd逗号之间的值。 以下是查询-

substring(IP-TEXT, 
          CHARINDEX(',',IP-TEXT,
          (CHARINDEX(',', IP-TEXT) + 1)) + 1, 
           CHARINDEX(',',IP-TEXT,
          (CHARINDEX(',',IP-TEXT,
          (CHARINDEX(',',IP-TEXT)+1))+1))-    
           CHARINDEX(',',IP-TEXT,
          (CHARINDEX(',',IP-TEXT)+1)))

感谢您的帮助:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM