这个SQL语句怎么写
- 提问者网友:雨不眠的下
- 2021-04-28 04:43
- 五星知识达人网友:患得患失的劫
- 2021-04-28 05:47
select c_name,s_no,s_name
from class c, stu s
where c.c_id = s.s_cid and c.c_stu>20 and s.s_no like '_006%'
order by s.s_no desc
其中 like '_006%' 中的 (下划线 _ ) 匹配的是一个字符 ,(百分号 % )匹配的是零个或多个字符
- 1楼网友:千杯敬自由
- 2021-04-28 08:16
Select c_name,s_no,s_name From class Inner Join stu Where c_stu > 20 And CharIndex('006', s_no , 2) Order By s_no Desc
一、如果在数据量多的情况下建议使用表联接查询,不建议用子查询
二、了解CharIndex的使用
CHARINDEX返回字符串中指定表达式的起始位置。
语法CHARINDEX ( expression1 , expression2 [ , start_location ] )
参数expression1
一个表达式,其中包含要寻找的字符的次序。expression1 是一个短字符数据类型分类的表达式。
expression2
一个表达式,通常是一个用于搜索指定序列的列。expression2 属于字符串数据类型分类。
start_location
在 expression2 中搜索 expression1 时的起始字符位置。如果没有给定 start_location,而是一个负数或零,则将从 expression2 的起始位置开始搜索。
返回类型int
三、本例模糊查询可以使用LIKE或CHARINDEX两种方式
- 2楼网友:举杯邀酒敬孤独
- 2021-04-28 08:00
select c_name,s_no,s_name
from class inner join stu on class.c_id = stu.s_cid
where c_stu>20 and s_no like '_006%'
order by s_no
- 3楼网友:怙棘
- 2021-04-28 07:35
1.select class.c_id,stu.s_cid from class cross join stu where class.c_id=stu.s_cid 2.select c_name,s_no,s_name from 表名 3.select c_stu from 表名 where c_stu>20 and s_no like'_006' 4.select s_no from 表名order by desc
第二第三好像错了。你试试。我刚学完 不知道是不是那样 如果错了请告诉我
- 4楼网友:摆渡翁
- 2021-04-28 07:10