sql知识

来源:互联网 发布:手机桌面时钟软件 编辑:程序博客网 时间:2024/05/18 18:04

一、SET  ANSI_NULLS  ON|OFF

主要用来指定sql语句中“=”和“<>”和NULL值一起使用时是否符合ISO的标准

(1)当SET  ANSI_NULLS  设置为 ON 时:

执行这样一条sql语句:select  *  from  table_name  where   column_name = NULL ,此时即使表中存在值为NULL的记录,sql语句返回的仍是0行,这时,如果要查询NULL值的记录,可以用 select  *  from  table_name  where   column_name  is NULL这样的语句;同样,我们执行:select  *  from  table_name  where   column_name <> NULL 时,即使表中存在不为NULL的值,sql语句返回的仍是0行,此时,如果我们要查询不为NULL值的记录:select  *  from  table_name  where   column_name is  not NULL; 

(2)当SET  ANSI_NULLS  设置为 OFF 时:

此时,执行:select  *  from  table_name  where   column_name = NULL 和 select  *  from  table_name  where column_name  is NULL 的返回结果是一样;同样,执行:select  *  from  table_name  where   column_name <> NULL 和 select  *  from  table_name  where   column_name is  not NULL 返回结果页是一样;

示例:

select * from Table_1,返回结果:

set ansi_nulls on
select * from Table_1 where Column_1 = null
select * from Table_1 where Column_1 is null
,返回结果:

set ansi_nulls off
select * from Table_1 where Column_1 = null
select * from Table_1 where Column_1 is null
,返回结果:

二、QUOTENAME函数使用方法

使用QUOTENAME函数可以使输入的字符串成为一个合理的标识符,比如:直接查询select  abc[]123是错误的,因为[]是sql的标识符,但如果我们使用select quotename('abc[]123')查询则可以返回结果:[abc[]]123]