SQL语句
select
from
Table
where
LEFT(课程名称,3)=‘计算机’
and
RIGHT(RTrim(课程名称),2)=‘基础’
LEFT(课程名称,3)
在课程名称中从左截取3个字符。
RIGHT(RTrim(课程名称),2)
在课程名称中从右截取2个字符。
RTrim(课程名称)
去掉课程名称字段中的空格。
使用函数SUBSTRING_INDEX()根据指定分隔符切割,分隔符可以是字符串等。
语法 :substring_index(str,delim,count)
说明 :
str:被截取字符串
delim:分隔符,截取时依据的关键字,区分大小写
count:从第几个分隔符开始截取
count如果为正数,则返回第count个分隔符左侧的所有内容(从左到右截取);如果为负数,则返回第count个分隔符右侧的所有内容(从右到左截取)。
例:
(1)如果count是正数,那么就是从左往右数,第N个 分隔符 的左边的全部内容
(2) 相反,如果是负数,那么就是从右边开始数,第N个分隔符右边的所有内容,
(3)取中间的某个值
从右数第二个分隔符的右边全部,再从左数的第一个分隔符的左边:
SQL语句 select 课程名称,学分 from Table where LEFT(课程名称,3)=‘计算机’ and RIGHT(RTrim(课程名称),2)=‘基础’ LEFT(课程名称,3) 在课程名称中从左截取3个字符。 RIGHT(RTrim(课程名称),2) 在课程名称中从右截取2个字符。 RTrim(课程名称) 去掉课程名称字段中的空格。
select
substr('a123456',instr('a123456','a')+1,len('a123456')-instr('a123456','a'))
from
dual
instr
返回1,
所以给它+1
,
从第2位开始截取到总长度-‘a’这个字符串的位置,
就是
6
,
所以最终会是
select
substr('a123456',2,6)
from
dual
这么写能明白吗?
以上就是关于在数据库中,怎么查询以'计算机'开头,'基础'结尾的课程名称,学分全部的内容,包括:在数据库中,怎么查询以'计算机'开头,'基础'结尾的课程名称,学分、数据库的字符串处理利器之SUBSTRING_INDEX()、数据库查询所有超过2学分且课程性质为必修的课程信息等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)