WEB开发网
开发学院数据库MSSQL Server SQL开发中容易忽视的一些小地方 阅读

SQL开发中容易忽视的一些小地方

 2008-10-13 10:07:39 来源:WEB开发网   
核心提示: select * from testNullwhere b in(null) --没有任何记录结论:in在查询时会忽略null的记录,查询的时候可用is not null来查询.5:排序时顺序有不同:当使用ORDER BY时,首先呈现NULL值,SQL开发中容易忽视的一些小地方(3),如果

select * from testNull

where b in(null) --没有任何记录

结论:in在查询时会忽略null的记录,查询的时候可用is not null来查询.

5:排序时顺序有不同:当使用ORDER BY时,首先呈现NULL值。如果你用DESC以降序排序,NULL值最后显示。

1:select * from testNull

1 1 ''

2 2 NULL

2:select * from testNull order by b

2 2 NULL

1 1 ''

3:select * from testNull order by b desc

1 1 ''

2 2 NULL

6:当使用GROUP BY时,所有的NULL值被认为是相等的。这时先多插入几条数据,方便查看结果.

insert into testNull
values('3',null)
values('4','4')
select * from testNull
select count(b) from testNull
group by b

返回结果:

0 1 1

结论:可见在group by 的时候,null视为等同.

7:永远不会有什么数据等于NULL。1不等于NULL,2也一样。但NULL也不等于NULL。所以我们只能比较它“是”或“不是”。

总结:SQL中提供了如此众多的存储过程,函数供我们调用,而我们又真正的理解几个呢?只有真正了解它们,才会对开发中出现的种种问题迅速找出问题所在并解决它.

表联接查询

为了说明问题,我创建了两个表,分别是学生信息表(student),班级表(classInfo).相关字段说明本人以SQL创建脚本说明:

测试环境:SQL2005

CREATE TABLE [dbo].[student](
[ID] [int] IDENTITY(1,1) NOT NULL,
[sUserName] [nchar](10) COLLATE Chinese_PRC_CI_AS NULL,--姓名
[sAddress] [varchar](200) COLLATE Chinese_PRC_CI_AS NULL,--地址
[classID] [int] NULL,--班级
[create_date] [datetime] NULL CONSTRAINT [DF_student_create_date] DEFAULT (getdate())--入班时间
) ON [PRIMARY]

上一页  1 2 3 4 5 6  下一页

Tags:SQL 开发 容易

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接