现在数据库中插入的数据格式是这样的:
a|b|c|d|66|12
12|wse|23w|asd|asd
1|2|3|4|5
每一条记录都是这样的格式,我现在想要得到第3个(结果为c,23w,3)如何在SQL中实现?
不能全部读出来再去分,因为我要用这个位置的数据成一个单独的字段。以这个字段来统计其它数据。
SQL语句如何截取字段中固定位置的值有两种方法:
第一种:用到的函数:substring(' ', , )、charindex(' ',' ')
从字符串‘abc123’的第一个字符开始截取,共截取两个字符,最后得到‘ab’。
select SUBSTRING('hello@163.com',1,charindex('@','hello@163.com')-1)
第二种:elect id, substring(str,charindex(',',str)+1,len(str)-charindex(',',str)) from test;
如果中间间隔为-,则sql语句为select id, substring(str,charindex('-',str)+1,len(str)-charindex('-',str)) from test。
select SUBSTRING('hello@163.com',1,charindex('@','hello@163.com')-1)的意思:
substring(字符串表达式,开始位置,长度):
从一个指定字符串的指定位置截取制定长度的字符;
第一个参数表示被截取的字符串;
第二个参数表示要在第一个参数中开始截取的位置;
第三个参数表示要截取的长度。
例如:select substring('abc123',1,2) →返回ab
从字符串‘abc123’的第一个字符开始截取,共截取两个字符,最后得到‘ab’。