SQL SERVER 把逗号隔开的字符串拆分成行

这篇具有很好参考价值的文章主要介绍了SQL SERVER 把逗号隔开的字符串拆分成行。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

SQL SERVER 把逗号隔开的字符串拆分成行,有效

SQL SERVER 把逗号隔开的字符串拆分成行

目标:把车牌号单独成行,可过滤掉空字符串

查询语句

SELECT companyname as 公司名称,deptname as 部门名称,    carno as 车牌号 ,iyear as 年度,imonth as 月份,money as 预算数,
substring(carno,number,charindex(',',carno+',',number)-number) as chepaihao
FROM business_dw_sangong_qichefeiyong with(nolock) ,master..spt_values  with(nolock) 
where number >=1 and number < len(carno)
and type='p'
and SUBSTRING(','+carno,number,1)=','
ORDER BY companycode,deptcode,iyear desc ,imonth

效果:

SQL SERVER 把逗号隔开的字符串拆分成行

补充:

匹配字符串开始位置的函数CHARINDEX(str1,str,[start])

CHARINDEX(str1,str,[start])函数返回子字符串str1在字符串str中的开始位置,start为搜索的开始位置,如果指定start参数,则从指定位置开始搜索;如果不指定start参数或者指定为0或者负值,则从字符串开始位置搜索。

eg: select CHARINDEX('a','banana'),CHARINDEX('a','banana',4), CHARINDEX('na','banana', 4);

CHARINDEX('a','banana')返回字符串'banana'中子字符串‘a’ 第一次出现的位置,结果为2;

CHARINDEX('a','banana',4)返回字符串'banana'中从第4个位置开始子字符串‘a’的位置,结果为4;

CHARINDEX('na','banana', 4)返回从第4个位置开始子字符串‘na’第一次出现的位置,结果为5

解释:

用charindex 索引(‘,11,’)在字段“TypeIDArray”的位置,且,只显示大于0的数据

代码逐行运行时,显示的是“TypeIDArray”字段的值

如 ID=1小明的“TypeIDArray”字段的值是 (1,2,3,4,5,6,7,8,9)

代码是(','+TypeIDArray+',')等于(‘,1,2,3,4,5,6,7,8,9,’)到这里我想各位看官就明白了

补充:

不过滤掉空字符串(null值好像还是会过滤掉)文章来源地址https://www.toymoban.com/news/detail-426314.html

SELECT companyname as 公司名称,deptname as 部门名称,    carno as 车牌号 ,iyear as 年度,imonth as 月份,money as 预算数,
substring(carno,number,charindex(',',carno+',',number)-number) as chepaihao
FROM business_dw_sangong_qichefeiyong with(nolock) ,master..spt_values  with(nolock) 
where number >=1 and number < len(carno)
and type='p'
and SUBSTRING(','+carno,number,1)=','
ORDER BY companycode,deptcode,iyear desc ,imonth

到了这里,关于SQL SERVER 把逗号隔开的字符串拆分成行的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • java中将list用逗号隔开拼成字符串的四种方法

    1 Stream流 public static String parseListToStr(List list){         String result = list.stream().map(String::valueOf).collect(Collectors.joining(\\\",\\\"));         return result; } 2 使用谷歌Joiner方法 import com.google.common.base.Joiner; public static String parseListToStr1(List list){         String result = Joiner.on(\\\",\\\").join(list);    

    2024年02月14日
    浏览(51)
  • 【SQL SERVER】Fn_SplitStr 逗号相隔的字符串返回多行

    运行结果如下:

    2024年01月23日
    浏览(39)
  • Mysql(函数) 字符串截取、拆分, 逗号分割字符串当做 in 的条件

    目录  引言:  数据库函数的总结(一) 1. mysql截取拆分 2. 逗号分割的字符串 作为in条件 - 2.1 正常的效果应该是  --- 2.1.1 错误:  3. 字符串合并(多条数据合并 用\\\'、\\\'分割) 1. 字符串截取、拆分 可以用于将用户输入的字符串按照特定的规则进行截取,比如获取电话号码中的区号、

    2024年02月08日
    浏览(67)
  • 【SQL相关】Hive行列字符串的合并与拆分

    目录 一、行方向 1. 行方向的合并 1.1 concat 函数 1.2 concat_ws 函数 2. 行方向的拆分 二、列方向 1. 列方向的合并 1.1 group_concat 函数 1.2 collect_list 函数 1.3 collect_set 函数 2. 列方向的拆分 2.1 explode 函数 2.2 lateral view 1. 行方向的合并 将同一行某几列的数据以分隔符分隔,合并到同一列

    2024年04月14日
    浏览(49)
  • MYSQL: sql中某一个字段内容为用逗号分割的字符串转换成多条数据(适用于部分树机构)

    1.创建表的示例 数据如下图: SELECT a.id,SUBSTRING_INDEX(SUBSTRING_INDEX(a.userName,‘,’,b.help_topic_id+1),‘,’,-1) as name from tbl_name a left join mysql.help_topic b on b.help_topic_id (LENGTH(a.userName)-LENGTH(REPLACE(a.userName,‘,’,‘’))+1) ORDER BY a.id; 本人需求为 图层树的父级节点都在 ancestors 字段中,需要获取

    2024年02月11日
    浏览(69)
  • SQL Server截取字符串函数操作

    目录 1、SUBSTRING()函数 2、LEFT()函数  3、RIGHT()函数  4、CHARINDEX()函数  5、LEN函数 1、SUBSTRING()函数         含义:从指定位置开始截取指定数量的字符。         使用:SUBSTRING( 原字符 , 截取字符的起始位置 , 截取字符数量 )         举例:                 1、 截取字

    2024年02月01日
    浏览(55)
  • Java分割字符串,分割逗号字符串,分割空格

    在一些读取文件,然后对数据进行处理的过程中,我们需要获取到对应的数据,这里我有一个文本其中的数据都是用逗号进行隔开的,我需要获取到他们;

    2024年02月11日
    浏览(52)
  • SQL SERVER日期与字符串之间的转换

    本文导读:在SQL Server数据库中,SQL Server日期时间格式转换字符串可以改变SQL Server日期和时间的格式,是每个SQL数据库用户都应该掌握的。下面主要就介绍一下SQL Server日期时间转字符串的相关知识 一、日期转换为字符串、日期格式 1、使用函数CONVERT: 2、参数 expression :是任

    2024年02月10日
    浏览(51)
  • SQL Server日期时间字符串的处理和转换

    在SQL Server中,您可以使用T-SQL函数进行日期时间字符串的处理和转换。要判断一个日期字符串是否包含时间信息,可以使用T-SQL内置的函数CONVERT和TRY_CONVERT,并指定时间格式。 例如,假设有一个名为date_string的日期字符串,您可以使用以下代码来判断它是否包含时间信息: 如

    2024年02月16日
    浏览(51)
  • SQL Server日期时间与字符串之间的转换

    1、使用函数CONVERT: 2、参数说明 expression :任何有效的SQL表达式。 data_type :目标数据类型。 这包括 xml、bigint 和sql_variant 。 不能使用别名数据类型。 length :指定目标数据类型长度的可选整数,适用于允许用户指定长度的数据类型。例如:nchar、nvarchar、char、varchar、binary

    2024年02月06日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包