转自 http://www.cnblogs.com/dyufei/archive/2009/11/11/2573975.html CUBE 运算符生成的结果集是多维数据集.多维数据集是事实数据(即记录个别事件的数据)的扩展.扩展是基于用户要分析的列建立的.这些列称为维度.多维数据集是结果集,其中包含各维度的所有可能组合的交叉表格. CUBE 运算符在 SELECT 语句的 GROUP BY 子句中指定.该语句的选择列表包含维度列和聚合函数表达式.GROUP BY 指定了维度列和关键字 WITH
在说到对null值的理解主要是用unique来体现的.也是说null在unique约束看来是一个值还是多个值的问题. 还是开始实验吧. MYSQL create table t(x int ,constraint ix_unique_x unique index (x)); insert into t(x) values(null); insert into t(x) values(null); --向表中插入两个空值,在MYSQL 中是可以成功的. SQL Server create tabl
平时经常会遇到这两种写法:IS NOT NULL与!=NULL.也经常会遇到数据库有符合条件!=NULL的数据,但是返回为空集合.实际上,是由于对二者使用区别理解不透彻. 默认情况下,推荐使用 IS NOT NULL去做条件判断,因为SQL默认情况下对WHERE XX!= Null的判断会永远返回0行,却不会提示语法错误. 这是为什么呢? SQL Server文档中对Null值的比较运算定义了两种规则,如在SQL Server 2000中: 规则一是是ANSISQL(SQL-92)规定的Null
目标:辨别并使用Null值 反模式:将Null值作为普通的值,反之亦然 1.在表达式中使用Null: Null值与空字符串是不一样的,Null值参与任何的加.减.乘.除等其他运算,结果都是Null: Null值与False也不同.And.Or和Not三个bool操作如果设计Null,结果很迷惑. 2.搜索运行为空的列:任何与Null的比较逗返回“未知”,既不是True,也不是False. 在Where表达式中只能使用 Is Null 或者 Is Not Null,其他操作都查询不到结果. 3.不
SQL的表达式,除了IS NULL和NOT NULL以外,只要出现NULL值结果都为FALSE 简单的例子: SELECT * FROM table WHERE name!='abc' 只要name值是NULL,无论用name='abc'还是name!='abc',都不能获得这行,需要获取所有不是'abc'的行应该使用下面的语句: SELECT * FROM table WHERE name!='abc' OR name IS NULL
我们知道SQL SERVER建立链接服务器(Linked Server)可以选择的驱动程序非常多,最近发现使用ODBC 的 Microsoft OLE DB 驱动程序建立的链接服务器(Linked Server), 调用存储过程过程时,参数不能为NULL值. 否则就会报下面错误提示: 对应的英文错误提示为: EXEC xxx.xxx.dbo.Usp_Test NULL,NULL,'ALL' Msg 7213, Level 16, State 1, Line 1 The attempt by th
最近一个项目,涉及到sql server 2008,因为业务需求,希望建立一个唯一索引,但是发现在sql server中,唯一索引字段不能出现多个null值,下面是报错信息: CREATE UNIQUE NONCLUSTERED INDEX weixin_openid_ui ON Users(weixin_openid); 因为发现对象名称 'dbo.Users' 和索引名称 'weixin_openid_ui' 有重复的键,所以 CREATE UNIQUE INDEX 语句终止.重复的键值为
修改上一条SQL语句 1.用c命令来修改(c 即 change ) 默认,光标闪烁位置指向上一条SQL语句的第一行.输入二则定位到第二行. c /错误的关键字/正确的关键字 SQL form emp; form emp * 第 行出现错误: ORA: 未找到要求的 FROM 关键字 SQL> c form/from; SP2: 未找到字符串 SQL> c /form/from; from emp SQL> / EMPNO ENAME SAL SAL ---------- --------