SQL取字段中某一部分特定数值

如果你觉得固定得到“20/30”更容易,你可以在这个字符串中找到“20/30”的起始位置,并将其切成5个字符的长度,如下所示:。
SELECTCASEWHENCHARINDEX('mgdf13hj44jjjgasetrxzc20/30nj5w)eyu45f5645gjhkdfjkg','20/30')>0THENSUBSTRING('mgdf13hj44jjjgasetrxzc20/30nj5weyu45f5645gjhkdfjkg',CHARINDEX('mgdf13hj44jjjgasetrxzc20/30nj5weyu45f5645gjhkdfjkg','20/30'),5)ELSE''END与“/”关联的数字,不一定是20/30(例如14/20、33/66等)。
),问题可能是需要创建一个函数来提取字符串,例如f_substr(),并在SQL中调用selectuser.f_substr('mgdf13hj44jjjgasetrxzc20/30nj5weyu45f5645gjhkdfjkg')。

sql语句如何截取某字段的一部分

在SQL中,可以使用SUBSTRING语句截取字段的一部分。
语法格式为“SUBSTRING(字符串,起始位置,截距长度)”。
SQL中的substring函数用于捕获字段的部分数据。
本教程的运行环境:Windows7系统,mysql8版本,DellG3电脑。
参数SUBSTRING(表达式、开始、长度)表达式字符串、二进制字符串、文本、图像、列或包含列的表达式。
不要使用包含聚合函数的表达式。
start整数或可隐式转换为int的表达式,指定子字符串的起始位置,索引从1开始。
length是整数或可隐式转换为int的表达式,指定子字符串链的长度。
经过测试,暂时发现只能是非负数。
返回值1.如果表达式是受支持的二进制数据类型,则返回二进制数据。
我们暂时不讨论这个案例。
2.如果表达式是受支持的字符数据类型,则返回字符数据。
(1)如果起始索引从1开始,则字符串截取从表达式的第一个字符开始,从表达式的第二个字符开始,以此类推。
例如:selectSUBSTRING('abcde'1,2)返回结果abselectSUBSTRING('abcde'2,3)返回结果bcdselectSUBSTRING('abcde'1,0)返回结果为空selectSUBSTRING('abcde'0,8)返回结果abcde,注意后面没有空格。
(2)如果start索引从小于1(0或负数)开始,则返回的长度从1开始相等,截取的长度为length-((start-1)的绝对值)。
差值为负数,则返回空。
例如:||下面表示绝对值的计算selectSUBSTRING('abcde'0,2)。
返回结果为a,计算公式为SUBSTRING(1,2-|2-1|)selectSUBSTRING('abcde'0)。
,-1)返回错误信息“传递给子字符串函数的长度参数无效”selectSUBSTRING('abcde'-1,2)返回空结果,计算公式为SUBSTRING(1,2-|-1-1|)selectSUBSTRING('abcde'-5,3)返回结果为空,计算公式为SUBSTRING(1,3-|-5-1|)selectSUBSTRING('abcde'-1,4),返回结果为ab,计算公式为SUBSTRING(1,4-|-1-1|)selectSUBSTRING('abcde'-2,8)返回abcde,计算公式为SUBSTRING(1,8-|-2-1|)相关学习推荐:mysql教程(视频)

如何用sql获取字段中的部分内容

selectsubstring(base,len(base)-7,7),substring(base,len(base)-13,5,....fromtest

sql从查询结果中选择中间某部分记录

我说的是一个笨方法

selecttop300*into#tablefromtableorderby排序条件

deletetop199*from#tableorderby排序条件

select*from#tableorderby排序条件

说明:

这是用虚表写的。
方法比较笨。
肯定会有一个简单的。
多想想。

我把目的记录拿出来,然后过滤掉不需要的记录。
记录,剩下的就是你想要的

因为你要200~300条记录,所以必须要有排序的条件。
不同的排序会导致不同的结果

尝试一下,OK,请采纳

SQL2008如何实现取一个字段当中的一部份数据?

SelectWrite(Left(FDescription,18),14)方法太多,无法查看SQL字符串函数