![](https://csdnimg.cn/release/download_crawler_static/85499035/bg6.jpg)
查找工资小于 1500 或大于 3000 的所有的员工的信息
select * from emp where sal < 1500 or sal > 3000; 等价于:
select * from emp where sal not between 1500 and 3000
in(属于若干个孤立的值)
select * from emp where sal in (1500, 3000); 在 emp 表中取出 sal 为 1500 和 3000
的所有记录,等价于:
select * from emp where sal = 1500 or sal = 3000;
select * from emp where sal not in (1500, 3000); 在 emp 表中取出 sal 既不是 1500 也
不是 3000 的记录,等价于:
select * from emp where sal <> 1500 and sal <> 3000;
在数据库中不等于有两种表示方式: != <> 推荐使用第二种
对或取反是并且,对并且取反是或
top(最前面的若干个记录,专属于 SqlServer 的语法,不可移
植到其他数据库中)
select top 2 * from emp; 选出 emp 表中的前两个记录
select top 15 percent * from emp; 输出 emp 表中的前 15%个,如果不是整数的
话,就进位。如,14 * 15% = 2.1,则输出 3 个值
select top 2 from emp; 这里没有*会出错
把工资在 1500 和 3000 之间(包括 1500 和 3000)的员工中工资最高的 4 个人的
信息输出
select top 5 * from emp where sal between 1500 and 3000 order by sal desc;
其中 desc 是降序的意思,默认情况下是升序
null(没有值 空值)
零和 null 是不一样的,null 表示空值,没有值;零表示一个确定的值
null 不能参与如下运算:<> != =
null 可以参与如下运算:is is not
例如:
select * from emp where comm <> null; --错误
select * from emp where comm != null; --错误
select * from emp where comm = null; --错误
select * from emp where comm is null; --输出奖金为空的员工的信息
select * from emp where comm is not null; --输出奖金不为空的员工的信息
任何类型的数据都允许为 null,如:
create table t1(name nvarchar(20), cnt int , riqi datetime),
insert into t1 values (null, null, null);
任何数字与 null 参与数学运算的结果永远是 null,例如:
–输出第个员工的姓名年薪(包含了资金),comm 假设是一年的资金
select empno, ename, sal * 12 +comm “年薪” from emp;
如果有 null 参与运算的话,结果全部为 null
正确的写法是:
6