查詢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;