【SQL SERVER】Fn_SplitStr 逗号相隔的字符串返回多行

CREATE FUNCTION [dbo].[Fn_SplitStr]
(
@param VARCHAR(MAX), 
@delimiter CHAR(1) = ','
)
RETURNS @t TABLE (val varchar(100), seq INT)
AS
BEGIN
SET @param += @delimiter;
WITH a AS
(
SELECT CAST(1 AS BIGINT) f, CHARINDEX(@delimiter, @param) t, 1 seq
UNION ALL
SELECT t + 1, CHARINDEX(@delimiter, @param, t + 1), seq + 1
FROM a
WHERE CHARINDEX(@delimiter, @param, t + 1) > 0
)
INSERT @t
SELECT SUBSTRING(@param, f, t - f) , seq FROM a
OPTION (MAXRECURSION 0)
RETURN
END
GO

运行结果如下:
在这里插入图片描述

  • 11
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: 可以使用Java的 `indexOf` 和 `substring` 方法来获取字符串逗号前的内容。 首先,使用 `indexOf` 方法找到逗号字符串中的位置,然后使用 `substring` 方法截取字符串中从开头到逗号位置之前的内容。 例如,假设你有一个字符串 `str`,它的值为 "apple,banana,orange",要获取逗号前的内容(也就是"apple"),可以这样写: ``` int index = str.indexOf(','); String result = str.substring(0, index); ``` 这样,`result` 就是逗号前的内容。 注意:如果字符串中没有逗号,那么 `indexOf` 方法会返回 -1,在这种情况下,你需要特别处理,或者使用一些其他的方法来获取字符串中的内容。 ### 回答2: 在Java中,我们可以使用substring()方法和indexOf()方法来获取字符串逗号前的内容。 假设我们有一个字符串str,其中包含一个逗号,我们想要获取逗号前的内容。我们可以使用indexOf()方法来找到逗号的索引位置,然后使用substring()方法从字符串的开头截取到逗号的索引位置。具体的代码如下: ```java String str = "这是一个字符串,逗号前的内容"; int commaIndex = str.indexOf(","); String result = str.substring(0, commaIndex); System.out.println(result); ``` 上述代码中,我们首先使用indexOf()方法找到逗号的索引位置,然后使用substring()方法截取字符串的开头到逗号的索引位置。最后将结果打印出来。 在上述例子中,输出结果为"这是一个字符串",即逗号前的内容。 需要注意的是,如果字符串中没有逗号,indexOf()方法会返回-1,这时我们需要进行处理,例如可以判断索引是否为-1,如果是则说明字符串没有逗号。 另外,如果希望获取逗号后的内容,可以将substring()方法的参数改为(commaIndex + 1, str.length()),即截取逗号索引位置后的字符串。 ### 回答3: 在Java中,可以使用split()方法来获取字符串逗号前的内容。 具体步骤如下: 1. 定义一个字符串变量,存储需要处理的字符串。 2. 使用split()方法对字符串进行分割,以逗号作为分隔符。 3. 将分割后的结果存储在一个字符串数组中。 4. 取数组的第一个元素,即逗号前的内容。 示例代码如下: ```java public class Main { public static void main(String[] args) { String str = "逗号前的内容,逗号后的内容"; String[] splitStr = str.split(","); String result = splitStr[0]; System.out.println(result); } } ``` 上述代码中,字符串"逗号前的内容,逗号后的内容"通过split()方法使用逗号分割,得到一个字符串数组splitStr。然后通过索引0获取逗号前的内容,将结果赋值给变量result。最后,使用println()方法打印结果。 运行上述代码,输出结果为"逗号前的内容"。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寒冰的暖

谢谢您的赞许投喂~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值