SQL SERVER ParseName分隔字符串

       ParseName是一个分隔字符串的函数,根据“.”作为分隔符,快速获取分解后的部分,直接上例子:

DECLARE @ip NVARCHAR(200) = '192.168.1.2';
SELECT
    PARSENAME(@ip, 1) AS col1,
    PARSENAME(@ip, 2) AS col2,
    PARSENAME(@ip, 3) AS col3,
    PARSENAME(@ip, 4) AS col4;

       结果:

       我们可以看到把一个字符串按照“.”进行分隔,然后我们获取到了不用的部分,同样对一些特殊字符分隔的字符串,我们也可以转换一下使用这个函数:

DECLARE @ip NVARCHAR(200) = '192;168;1;2';
SELECT
    PARSENAME(REPLACE(@ip,';','.'), 1) AS col1,
    PARSENAME(REPLACE(@ip,';','.'), 2) AS col2,
    PARSENAME(REPLACE(@ip,';','.'), 3) AS col3,
    PARSENAME(REPLACE(@ip,';','.'), 4) AS col4;

       结果:

       我们可以看到对于“;”分隔的字符串先进行转换,然后同样应用这个函数,到达我们想要的效果,灵活使用函数,可以使用我们更加快速的完成功能。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
SQL Server中,可以使用以下方法将逗号分隔字符串转换为数字123: 方法一:使用SQL Server内置函数PARSENAME 1. 首先,将逗号分隔字符串拆分成多个部分,使用STRING_SPLIT函数,它在SQL Server 2016及更高版本中可用。例如,假设字符串为'1,2,3': ``` SELECT value FROM STRING_SPLIT('1,2,3', ',') ``` 这将返回一个结果集,包含每个数字作为单独的行。 2. 接下来,使用PARSENAME函数将字符串转换为数字。由于PARSENAME函数通常用于解析对象名称,所以我们可以使用它来解析特定位置的数字,比如第一个部分: ``` SELECT PARSENAME(value, 1) AS ConvertedValue FROM STRING_SPLIT('1,2,3', ',') ``` 这将返回一个结果集,其中每行都包含转换后的数字。 方法二:使用XML 1. 将逗号分隔字符串转换为XML格式,然后使用XQuery从XML中提取数字: ``` SELECT CONVERT(XML, '<root><r>' + REPLACE('1,2,3', ',', '</r><r>') + '</r></root>') ``` 这将返回XML格式的结果,其中每个数字被包裹在<r>标签之间。 2. 使用XQuery语法从XML中提取数字,然后使用CAST或CONVERT函数将其转换为数字: ``` SELECT CAST(t.c.value('.', 'nvarchar(100)') AS INT) AS ConvertedValue FROM CONVERT(XML, '<root><r>' + REPLACE('1,2,3', ',', '</r><r>') + '</r></root>').nodes('/root/r') AS t(c) ``` 这将返回一个结果集,其中每行都包含转换后的数字。 以上是将逗号分隔字符串转换为数字123的两种方法,在SQL Server中可以根据实际需求选择适合的方法来实现。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值