如何获取字段中分隔符的个数?(sql语句)
在最近的一个项目中,当向数据库添加数据时,添加了如下一条数据,如 times: 5|4|5|4(可上课次数),pdaimonth: 8|9|10|11(缴费月份),以上分别作为两个段。
然后在取数据的时候,用存储过程取出对应的数据,如 5-8,4-9,3-10,4-11,作为4条数据取出,这个时候就要获取‘|’的个数了(在项目中,‘|’的个数是不定的),然后一堆的 left、right、charindex、len、substring 就可以获取数据了。
还是写方法吧:
--用两个字符代替特殊符相减即可
declare @num_split int --分隔符的个数
select @num_split = len(replace(@sc_rs1_new,'|','||'))-len(@sc_rs1_new) --@sc_rs1_new 待检测的字符
然后在取数据的时候,用存储过程取出对应的数据,如 5-8,4-9,3-10,4-11,作为4条数据取出,这个时候就要获取‘|’的个数了(在项目中,‘|’的个数是不定的),然后一堆的 left、right、charindex、len、substring 就可以获取数据了。
还是写方法吧:
--用两个字符代替特殊符相减即可
declare @num_split int --分隔符的个数
select @num_split = len(replace(@sc_rs1_new,'|','||'))-len(@sc_rs1_new) --@sc_rs1_new 待检测的字符