查询sql
① sql 查询语句
很简单:
select bname,num,id,money from mytable where bname+','+convert(varchar,num) in (select bname+','+convert(varchar,num) from
mytable
group by bname,num having count(1)>1)
此语句列示出了所有有重复记录的数据各列数据
但这个查询包括了各列都相同的记录,如果要去掉每列都相同的记录,即价格和ID也相同就不计算就可通过简单修改写成这样:
select bname,num,id,money from mytable where bname+','+convert(varchar,num) in (select bname+','+convert(varchar,num) from
(select distinct * from mytable) a
group by bname,num having count(1)>1)
==================
方法是
1.通过SELECT DISTINCT * FROM MYTABLE去掉所有列相同的记录.
2.通过将1的结果按姓名和数量分组求出有重复姓名的子集
3.将原表中姓名和数量急括在将有重复姓名的子集中的记录全部显示.
明白了吗?
② 查询SQL语句
select * form 表名或视图名 where 条件
select a.字段名1,a.字段名2,b.字段名3 from 表名1 as a,表名2 as b where 两表的字段关联条件
select count(1) from 表名 where 条件(查询记录数)
③ SQL语句查询方法
楼上快疯了,哈哈。
你要的是
select p.* from a p,(select count(*) as c ,A列 as d,B列 as e group by A列,B列 having count(*)>1 ) k where p.A列=k.c and P.B列=k.d
还是select distinct * from a
??不是太懂你的意思
④ SQL的查询语句怎么写
如果存在一张学生信息表,表名tStudent, 列名有学号NO,姓名Name,性别Sex等,你要查出姓名是张三的信息
select
*
from
tStudent
where
Name
=
'张三'
如果只想要表中几列的信息,可以将*换成指定的列名,多列中间用逗号隔开,如:
select
NO,Name,Sex
from
tStudent
where
Name
=
'张三'
⑤ sql 查询语句
select 的命令比较多了,常用的是select 表的列名 from 表名/视图 [where 条件 group by 字段 order by 表的列名 asc/desc],当然也可以实现多表关联,select * from a,b where a.列名=b.列名 ;
当然select 可以嵌套,但必须数据库支持,sqlserver2000,oracle和mysql5.0以上都支持了,如 select * from (select * from 表名)a ,select的嵌套是比较复杂,可以实现n重嵌套的。
select 还有特殊的用法就是select * into 表名 select * from 表名
即为表的复制,好像sqlserver支持这个的。
知道的就这么多了,应该还有其他的了。
⑥ Sql语句查询
这个首先要保证员工的姓名重复是一个人重复,而不是二个人同名的重复,不然的话你这可能实现不了。
oracle,经过测试:
sql@kokooa>select * from
2 (select name,count(name) as count,sum(pay) as pay from test013
3 group by name) test
4 where count=1;
NAME COUNT PAY
-------------------- ---------- ----------
kate 1 3000
tom 1 3000
在这个答案中,我是排除了名字重复的人。只显示出不重复的名字,以及每个名字所对应的工资。(数据中有2个JIM,已经被排除)
如果你想要排除重复名字的人之后所有人的总共的工资,则是:
sql@kokooa>select sum(pay) from
2 (select name,count(name) as count,sum(pay) as pay from test013
3 group by name) test
4 where count=1;
SUM(PAY)
----------
6000
希望能给你帮助...
⑦ SQL中“全部”的查询方法
说明:课程总数=学号选课总数,就可以说明该学号选了所有课程,同样,
(总课程数-1)=学号选课程总数,说明该学号少一种课程没有选,SQL如下:
每个学生的课程数:(select 学号,count(*)num_A from 选课 group by 学号),定义为A表
课程总数:(select count(*) num_B from 课程),将结果定义为B表。
整合SQ语句如下:
全选:
select a.* from (select 学号,count(*)num_A from 选课 group by 学号) A,
(select count(*) num_B from 课程)B WHERE A.num_A=b.num_B
选少一课程:
select a.* from (select 学号,count(*)num_A from 选课 group by 学号) A,
(select count(*) num_B from 课程)B WHERE A.num_A=b.num_B-1
选少2课程:
select a.* from (select 学号,count(*)num_A from 选课 group by 学号) A,
(select count(*) num_B from 课程)B WHERE A.num_A=b.num_B-2
。。。。。。。。。。。。。。。。。。。。
⑧ SQL语句查询
用or把两个条件拼接起来不就行了嘛,还是我没理解对??select ntaxmny as 金额 from so_saleinvoice_b so where so.dbilldate>='2014-01-01' or so.daildate<='2013-01-01'
⑨ sql语句查询
我觉得是不是表设计有些欠妥呢
愿意详聊可以HI我
想清楚了
表是这样设计的
12电脑常识00000101
13日常生活00000202
14工作1302010201
01维修00000303
06电脑维修0103010301
15学习1403010301
07显示器06030101030101
08家电0103020302
09彩电08030201030201
10音响08030202030202
11冰箱08030203030203
02咨询00000404
03建议00000505
04投诉00000606
05回访00000707
加一编码字段像最后一个字段那样
每个记录编码等于本级编码和上一级编码的叠加
直接排吧
⑩ 查询sql语句
select max(score),stu_no,class_id from table group by class_id;