我正在研究SQL Server 2012,我想在下面的字符串中的第2个和第3个逗号之间使用子字符串。
输入:
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查询吗?
答案 0 :(得分:2)
您可以使用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)
答案 1 :(得分:0)
CROSS APPLY功能有效。 我还找到了另一种方法来获取2,d和3逗号之间的值。以下是查询 -
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)))
感谢您的帮助人员:)