永发信息网

这个SQL语句怎么写

答案:5  悬赏:0  手机版
解决时间 2021-04-28 12:21
  • 提问者网友:雨不眠的下
  • 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
SELECt c_name, s_no, s_name FROM class INNER JOIN stu ON c_id = s_cid WHERe c_stu > 20 AND s_no like '_006%' ORDER BY s_no DESC
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯