SQL语句如何截取字段中固定位置的值??

现在数据库中插入的数据格式是这样的:
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’。

温馨提示:内容为网友见解,仅供参考
第1个回答  2016-07-04
一、用到的函数:substring(' ', , )、charindex(' ',' ')
select SUBSTRING('hello@163.com',1,charindex('@','hello@163.com')-1)
1.substring(字符串表达式,开始位置,长度):
从一个指定字符串的指定位置截取制定长度的字符;
第一个参数表示被截取的字符串;
第二个参数表示要在第一个参数中开始截取的位置;
第三个参数表示要截取的长度。
例如:select substring('abc123',1,2) →返回ab
从字符串‘abc123’的第一个字符开始截取,共截取两个字符,最后得到‘ab’。
2.charindex(字符串表达式1,字符串表达式2[,整数表达式]):
在字符串2中查找字符串1,如果存在返回第一个匹配的位置,如果不存在返回0。如果字符串1和字符串2中有一个是null则返回null。
可以指定在字符串2中查找的起始位置。
例如:select charindex('ab','BCabTabD') → 返回3
select charindex('ab','BCabTabD',4) →返回6

二、用到的函数:left(' ', )、charindex(' ',' ')
select LEFT('hello@163.com',charindex('@','hello@163.com')-1)
1.left(字符串表达式,整数表达式):
从字符串表达式的最左边开始截取整数表达式个字符。
例如:select left('abcdef',3) →返回abc本回答被提问者采纳

SQL语句如何截取字段中固定位置的值?
SQL语句如何截取字段中固定位置的值有两种方法:第一种:用到的函数:substring(' ', , )、charindex(' ',' ')从字符串‘abc123’的第一个字符开始截取,共截取两个字符,最后得到‘ab’。select SUBSTRING('hello@163.com',1,charindex('@','hello@163.com')-1)第二种:elect id, substr...

如何用SQL语句取出数据库中的特定一条数据?
通过查询语句select * from user where id=1 我不知道你这个username指的是不是字段,如果是要取出表中某个字段的值。可以通过select 字段名1,字段名2 ... from user where id=1。-- MS sql server2005以上,ORACLE select * from (select row_number() over ( order by starttime asc) a...

SQL取字段中某一部分特定数值
如果只是固定取"20\/30"比较容易, 只需找到"20\/30"在此字符串的开始位置,再截取5个字符的长度就可以了,如:SELECT CASE WHEN CHARINDEX('mgdf13hj44jjjgasetrxzc20\/30nj5weyu45f5645gjhkdfjkg', '20\/30') > 0 THEN SUBSTRING('mgdf13hj44jjjgasetrxzc20\/30nj5weyu45f5645gjhkdfjkg', CHARINDEX...

SQL语句实现截取字段显示信息
点击需要进行设置的文件按钮;在新弹出的页面中,点击设置按钮;在设置页面中,点击显示设置按钮;在显示设置页面中,点击截取字段显示信息按钮;在新弹出的页面中,点击开启按钮;如此即可实现使用SQL软件截取字段显示信息的操作。

sql语句如何调用字符串后面制定位数的值
sql2="select * from [KS_Class] where left(ts,30)= '" & rs("TS") & "' order by ID asc"

如何通过SQL截取指定字段某一个字符的前面或后面的字符串?
针对SQL Server的实现:当需截取字符串"OPE-CZ-108-003-SE71.2"中的"."字符前面的字符串时,可以采用如下SQL语句。结果为"OPE-CZ-108-003-SE71",取值范围从字段第一位置开始,至"."字符前一个位置结束。对于截取"."字符后面的字符串,同样使用SQL Server,只需调整SQL语句,从"."字符后一位...

sql语句如何截取某字段的一部分
在sql中,可以使用SUBSTRING语句截取某字段的一部分,语法格式为“SUBSTRING(字符串,开始位置,截取长度)”。SQL中的substring函数是用来抓出一个栏位资料中的其中一部分 本教程操作环境:windows7系统、mysql8版本、Dell G3电脑。SUBSTRING ( expression, start, length )参数 expression 字符串、二进制字符...

如何用sql语句截取某个字段中指定文字后面紧跟的数值。 例如:(前面_百...
1.substring(字符串表达式,开始位置,长度):从一个指定字符串的指定位置截取制定长度的字符;第一个参数表示被截取的字符串;第二个参数表示要在第一个参数中开始截取的位置;第三个参数表示要截取的长度。例如:select substring('abc123',1,2) →返回ab 从字符串‘abc123’的第一个字符开始截取,...

求一个提取字段中间数字的SQL语句
改过了 把数取出:“第”和“节”两个字占4个字符 select substring(chaptername,3,len(chaptername)-4) from chapter 如果更新到order字段:update chapter set order=convert(smallint,substring(chaptername,3,len(chaptername)-4))

sql截取字段的方法有哪些?
要截取SQL数据库中的字段,不同数据库采用的函数有所不同。在Microsoft SQL Server、MySQL以及PostgreSQL中,常用的是`SUBSTRING`函数。其基本语法为`SUBSTRING('你的字符串',开始位置,截取长度)`。例如,`SUBSTRING('Hello World', 7, 5)`将返回子字符串`World`。然而,数据库系统并不是只有这些基本...

相似回答