`
taodongjie2012
  • 浏览: 5396 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

SQL Cookbook 第一章:检索记录 20140314

阅读更多

1.连接列值:将多列值作为一列返回。

--DB2,Oracle:是用双竖线作为连接运算符。

--MySQL:支持concat函数。

select concat(ename,' works as a ',job) as msg from table where deptno=10

 

--SQL Server:使用+运算符进行连接操作。

select ename+' works as a '+job as msg from table where deptno=10

 

 

1.8、在select 语句中使用条件逻辑:要在select语句中对数值执行IF-ELSE 操作。

--使用CASE表达式直接在SELECT语句中执行条件逻辑。

 

例:如果一个小员工工资<=2000,返回‘UNDERPAID’; 如果>=4000,返回‘OVERPAID’;如果在两者之间,返回‘OK’

 

select ename, sal,

case when sal<=2000 then 'UNDERPAID'

WHEN sal>=4000 then 'OVERPAID'

else 'OK'

end as status

from emp 

 

1.9、限制返回的行数:限制查询中返回的行数,这里不关心顺序。

--DB2: select * from emp fetch first 5 rows only

--MySQL: select * from emp limit 5

--Oracle: select * from emp where rownum<=5

--SQL Server: select top 5 * from emp

 

 

1.10、从表中随机返回n条记录

--在ORDER BY 字句中使用该函数,对行进行随机排序。

 

--DB2:同时使用内置函数RAND 与ORDER BY 和FETCH

select ename, job from emp order by rand() fetch first 5 rows only

--MYSQL: 同时使用内置的RAND函数、LIMIT、和ORDER BY

select ename,job,from emp order by rand() limit 5

--Oracle: 同时使用DBMS_RANDOM 中内置函数VALUE、ORDER BY 和内置函数ROWNUM:

select * from 

(select ename,job from emp order by dbms_random.value()) 

where rownum<=5

--SQL Server:同时使用内置函数NEWID, TOP,和ORDER BY 返回随机结果集:

select top 5 ename,job from emp order by newid()

 

--总结:1)ORDER BY 字句可以接受函数的返回值,并使用它来改变结果集的次序。

2)ORDER BY 子句中指定数字常量时,是要求根据SELECT列表中相应位置的列来排序。

3)ORDER BY 子句中使用函数时,则按函数在每一行计算结果排序。

 

 

 

1.11、查找空值:要查找某列值为空的所有行。

--要确定值是否为空,必须使用IS NULL 或者IS NOT NULL.

select * from emp where comm is null

 

1.12、将空值转换为实际值

--使用COALESCE函数用实际值来替换空值, 多个参数时返回第一个非空值。

select coalesce(comm,0) from emp

 

--使用CASE:

select case 

when comm is null them 0 

else comm

end

from emp

 

 

1.13、按模式搜索

--需要返回匹配特定子串或模式的行。

--使用LIKE运算符合SQL 通配符“%”。

 

例:在部门10和部门20需要返回名字中有一个“I”或者职务(Job title)中带“ER”的员工。

select ename,job 

from emp

where deptno in (10,20) and

(ename like '%I%' or job like '%ER')

 

 

 

 

 

分享到:
评论

相关推荐

    SQL.Cookbook(中文高清PDF)

    SQL.Cookbook 《SQL Cookbook中文版》中的SQL 是计算机世界的语言,在用关系数据库开发报表时,将数据放入数据库以及从数据库中取出来,都需要SQL 的知识。很多人以一种马马虎虎的态度在使用SQL,根本没有意识到...

    SQL COOKBOOK(压缩1/2)

    第1章 检索记录 1.1从表中检索所有行和列 1.2从表中检索部分行 1.3查找满足多个条件的行 1.4从表中检索部分列 1.5为列取有意义的名称 1.6在WHERE子句中引用取别名的列 1.7连接列值 1.8在SELECT语句中使用...

    SQL Cookbook.pdf

    SQL Cookbook.pdf SQL Cookbook.pdf SQL Cookbook.pdf

    sql cookbook(SQL经典)

    sql cookbook(SQL经典) 基本sql规范,经常犯的sql错误。

    SQL Cookbook(英文版)

    SQL Cookbook: Query Solutions and Techniques for Database Developers

    SQL Cookbook中文版

    例如,假如你有一个特定的业务问题要解决,目前只用SQL检索数据,而其他复杂的业务逻辑由其他语言完成,如果代码没有问题,而且性能也过得去,那么,谢天谢地。我绝对无意建议你扔掉以前的代码重新寻求完全SQL 的...

    SQL.Cookbook(中文版).(美)莫利纳罗.扫描版.pdf

    SQL.Cookbook,是一本经典的SQL教程,讲解了SQL的使用方法,一本好书

    SQL COOKBOOK 初始数据

    NULL 博文链接:https://daxiong921.iteye.com/blog/652818

    Microsoft SQL Server 2012 Integration Services An Expert Cookbook

    Microsoft SQL Server 2012 Integration Services : An Expert Cookbook Language : English Paperback : 564 pages [ 235mm x 191mm ] Release Date : May 2012 ISBN : 184968524X ISBN 13 : 9781849685245 Author ...

    SQL COOKBOOK(压缩2/2)

    第1章 检索记录 1.1从表中检索所有行和列 1.2从表中检索部分行 1.3查找满足多个条件的行 1.4从表中检索部分列 1.5为列取有意义的名称 1.6在WHERE子句中引用取别名的列 1.7连接列值 1.8在SELECT语句中使用...

    SQL.Cookbook(中文版)

    SQL.Cookbook(中文版)SQL.Cookbook(中文版)SQL.Cookbook(中文版)SQL.Cookbook(中文版)SQL.Cookbook(中文版)

    ORACLE__SQL.pdf SQL.Cookbook.pdf

    ORACLE__SQL.pdf SQL.Cookbook.pdf 两本非常经典的书

    SQL Cookbook.part1

    SQL Cookbook.part1SQL Cookbook.part1SQL Cookbook.part1

    SQL CookBook.zip

    SQL CookBook

    SQL COOKBOOK 英文版

    软件开发人员、数据库DBA必用利器 也许你在为实现一个功能四处上网求救时,其实,它已经在此了。 效率,才是你所要的。

    SQL Cookbook

    这是一本sql语言的入门参考书,以例子促学习,适合每一位从事数据库的dba

    SQL Cookbook.zip

    sql学习比较好的资料,各种数据库的语法都有,一般新手先看前面100页左右就差不多可以入门。

    SQL Cookbook.part2

    SQL Cookbook.part2SQL Cookbook.part2

Global site tag (gtag.js) - Google Analytics