高手是怎样炼成的:精妙SQL语句介绍
如何从【rú hé cóng】一位菜【yī wèi cài】🏌鸟蜕变【niǎo tuì biàn】成为高🈷手,灵活使【líng huó shǐ】🎾用的SQL语句是【yǔ jù shì】必不可🎍少的。本文收集了部【jí le bù】分比较🥥经典【jīng diǎn】,常用的SQL语句供大家参【dà jiā cān】考,希望对【xī wàng duì】大家有🌌所帮助。
说明【shuō míng】:复制表(只复制结构💦,源表名【biǎo míng】🎑:a 新表名【biǎo míng】🔡:b)
SQL: select * into b from a where 1<>1
说明【shuō míng】:拷贝表🔇(拷贝数【kǎo bèi shù】据【jù】⏭,源表名【biǎo míng】🎑:a 目标表【mù biāo biǎo】名🔡:b)
SQL: insert into b(a, b, c) select d,e,f from b;
说明【shuō míng】:显示文【xiǎn shì wén】章【zhāng】、提交人🏜和最后📨回复时🐩间【jiān】
SQL: select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b
说明【shuō míng】:外连接🗳查询🌄(表名【biǎo míng】🔡1:a 表名【biǎo míng】🔡2:b)
SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
说明【shuō míng】:日程安【rì chéng ān】🚲排提前【pái tí qián】五分钟提醒
SQL: select * from 日程安【rì chéng ān】🚲排 where datediff('minute',f开始时间【jiān】,getdate())>5
说明【shuō míng】:两张关联表🔶,删除主【shān chú zhǔ】表中已【biǎo zhōng yǐ】经在副【jīng zài fù】表中没有的信息🔇
SQL:
delete from info where not exists ( select * from infobz where info.infid=infobz.infid
说明【shuō míng】:--
SQL:
SELECT A.NUM, A.NAME, B.UPD_DATE, B.PREV_UPD_DATE
FROM TABLE1,
(SELECT X.NUM, X.UPD_DATE, Y.UPD_DATE PREV_UPD_DATE
FROM (SELECT NUM, UPD_DATE, INBOUND_QTY, STOCK_ONHAND
FROM TABLE2
WHERE TO_CHAR(UPD_DATE,'YYYY/MM') = TO_CHAR(SYSDATE, 'YYYY/MM')) X,
(SELECT NUM, UPD_DATE, STOCK_ONHAND
FROM TABLE2
WHERE TO_CHAR(UPD_DATE,'YYYY/MM') =
TO_CHAR(TO_DATE(TO_CHAR(SYSDATE, 'YYYY/MM') ¦¦ '/01','YYYY/MM/DD') - 1, 'YYYY/MM') Y,
WHERE X.NUM = Y.NUM (+)
AND X.INBOUND_QTY + NVL(Y.STOCK_ONHAND,0) <> X.STOCK_ONHAND B
WHERE A.NUM = B.NUM
说明【shuō míng】:--
SQL:
select * from studentinfo where not exists(select * from student where studentinfo.id=student.id) and 系名【xì míng】🔡称【chēng】='"&strdepartmentname&"' and 专业名【zhuān yè míng】🔡称【chēng】='"&strprofessionname&"' order by 性别,生源地,高考总成绩🥋
说明【shuō míng】:
从数据【jù】📮库中去【kù zhōng qù】一年的【yī nián de】各单位【gè dān wèi】电话费统计(电话费定额贺👬电化肥🕐清单两个表来源)
SQL:
SELECT a.userper, a.tel, a.standfee, TO_CHAR(a.telfeedate, 'yyyy') AS telyear,
SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '01', a.factration)) AS JAN,
SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '02', a.factration)) AS FRI,
SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '03', a.factration)) AS MAR,
SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '04', a.factration)) AS APR,
SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '05', a.factration)) AS MAY,
SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '06', a.factration)) AS JUE,
SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '07', a.factration)) AS JUL,
SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '08', a.factration)) AS AGU,
SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '09', a.factration)) AS SEP,
SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '10', a.factration)) AS OCT,
SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '11', a.factration)) AS NOV,
SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '12', a.factration)) AS DEC
FROM (SELECT a.userper, a.tel, a.standfee, b.telfeedate, b.factration
FROM TELFEESTAND a, TELFEE b
WHERE a.tel = b.telfax) a
GROUP BY a.userper, a.tel, a.standfee, TO_CHAR(a.telfeedate, 'yyyy')
说明【shuō míng】:四表联👲查问题:
SQL: select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where .....
说明【shuō míng】:得到表😸中最小🛬的未使👴用的ID号
SQL:
SELECT (CASE WHEN EXISTS(SELECT * FROM Handle b WHERE b.HandleID = 1) THEN MIN(HandleID) + 1 ELSE 1 END) as HandleID
FROM Handle
WHERE NOT HandleID IN (SELECT a.HandleID - 1 FROM Handle a)
关键词:SQL语句
阅读本文后您有什么感想? 已有 人给出评价!
- 0
- 0
- 0
- 1
- 1
- 1