最近有人问我 OLE DB Destination 中的 Keep Nulls 如何控制 NULL 值的显示,为什么选中了 Keep Nulls 但是数据库中没有 NULL 值? 为什么在 Flat File Source 中勾选上了 Retain null values from the source as null values in the data flow 但是为什么目标表上显示的是一个当前日期,而不是 NULL 值等等,单开此文来解释这些非常容易混淆的概念. 在比较纯粹的 ETL 项
我们在sql中要查询某列值为null的所有结果集时,查询条件应该这样写select * from 表 where 字段 is null而使用select * from 表 where 字段 = null是查不到正确的结果的.那这是为什么呢?要清楚为什么,就需要了解sql中的三值逻辑了.在SQL中逻辑表达式的可能值包括TRUE.FALSE和UNKNOWN,它们被称之为三值逻辑. 我们知道,在其它的语言中,逻辑表达式只有两种,要么是true,要么就是false.而sql中却存在第三个逻辑表达式UnK
1.NULL是什么? NULL表示UNKNOW(未知),其不代表不论什么值. 比如一行中某列没有不论什么值即为NULL. ORACLE同意不论什么一种数据类型的字段为空,除了下面两种情况: 1)主键字段(primary key), 2)定义时已经加了NOT NULL限制条件的字段 2.NULL有什么用? 1)NULL可用于条件推断: SELECT * FROM EMP WHERE COMM IS NULL; 或 SELECT * FROM EMP WHERE COMM IS NOT NULL;