oracle 将空转空串,Oracle 空串跟NULL

在Oracle中有个关键字叫NULL,它表示某个值是未知的、是不确定的。既然是未知的,就有无数种的可能性。因此,NULL并不是一个确定的值。

例1

set serverout on

declare

v_b1 boolean:=null; --布尔值可以赋值null.当然它另外两种值只能是true,false了

v_a int := null;

v_b int := null; --整数可以给它赋值null

v_s varchar2(20):= null ; --字符也可以赋值null

begin

if(v_a= v_b) then --v_a 和v_b都是null但此处判断的结果是它们并不相等.改成v_a =null结果仍然是一样

dbms_output.put_line('v_a equal v_b');

else

dbms_output.put_line('v_a not equal v_b');--输出这个结果

end if;

if(v_b1) then --把v_b1改成not v_b1结果都一样.也就是v_b1和把它取反都不会是true

dbms_output.put_line('v_b1 equal true');

else

dbms_output.put_line('v_b1 is not true');--输出这个结果

end if;

if(true or v_b1) then --输出v_b1 equal true

dbms_output.put_line('v_b1 equal true');

else

dbms_output.put_line('v_b1 is not true'); -- 如果把前面的判断条件改成true and v_b1 则输入这条语句

end if;

end;

例2:

create table test (ename char(1),constraint ck_test check(ename in ('a',null)));

--上面的语句创建一个表,只有一列ename,给此列添加约束条件,它的值只能在列表('a',null)中.但实际上我们可以插入任何字符.这时貌似null可以代表所有的字符了.去掉它只能插入'a'

eate table test1 (ename char(1),constraint ck_test check(ename not in ('a',null)));

--按我们猜想如果null能代表所有字符了那它取反就是不能输入任何字符.但实际上不是.此处它貌似没起任何作用.去掉它和不去掉效果一样.都可以插入除'a'外的任何字符

1.怎么理解null的这些用法

既然null是个不确定的类型,那么:

如例1中两个整数值v_a,v_b都是null.要让他们相等得就类似于让两个不确定类型,不确定数值的两个变量去比较,所以不可能相等。

而true or v_b1之所以为真,是因为or前面的为真的话,不去对后面的v_b1做判断了.

而v_b1和not v_b1都为假则可以认为v_b1的值不确定,所以最终结果只能为false.

这样来理解了null就不难明白为什么我们在一个表中插入一个null值.但我们不能通过判断条件=null来查询.不过oracle提供了关键字is来判断一个值是否是null.

例2中第二种情况我们也可以理解为既然null是不确定的,那么其实in或者not in都无所谓,都可以输入任何字符。

null 与任何值做逻辑运算得结果都为 false,包括和null本身

null 和任何数值进行数学运算,结果都为 null

null和字符串做连接等操作时,会作为空串使用,可以使用 || 将空字符串或 null 和字符串连接,或者concat('a', null)。

2.null和空字符串

oracle 将空字符串即''当成null.

所以如果你插入一条记录为空,oracle默认会转化为null值。

3.null和空字符串的判断

null 与任何值做逻辑运算得结果都为 false,所以要判断NULL就的用 is null 关键字来判断。

4.null和空字符串的转化

NVL( string1, replace_with)

功能:如果string1为NULL,则NVL函数返回replace_with的值,否则返回string1的值。

引申一下,此NVL的作用与SQLserver 中的 ISNULL( string1, replace_with) 一样。

注意事项:string1和replace_with必须为同一数据类型,除非显示的使用TO_CHAR函数。

4.使用null的注意事项

在用avg,max,min等oracle内置函数时会把为NULL的列忽略掉。

参考:http://blog.csdn.net/weiwenhp/article/details/7035327

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用三元表达式或者逻辑或运算符来将 null 转成空串: ```javascript let str = null; // 使用三元表达式 str = str ? str : ''; // 使用逻辑或运算符 str = str || ''; ``` 这两种方法都先判断 str 是否为真,如果 str 为 null、undefined、false、0、NaN 或空串,则返回空串。如果 str 是一个非字符串,则返回原字符串。 ### 回答2: 在JavaScript中,将null转换为字符串的方法有很多种。下面我将介绍两种常用的方法。 方法一:使用条件运算符 ```javascript var value = null; var result = value ? value : ''; console.log(result); // 输出:'' ``` 这种方法利用了条件运算符(也称为三元运算符)的特性,如果value的值为真,则返回value;如果value的值为假(包括null、undefined、false、0和字符串等),则返回字符串。 方法二:使用逻辑或运算符 ```javascript var value = null; var result = value || ''; console.log(result); // 输出:'' ``` 这种方法利用了逻辑或运算符的特性,如果value的值为真,则返回value;如果value的值为假,则返回字符串。由于null被视为假值,所以当value为null时,逻辑或运算符返回字符串。 需要注意的是,以上两种方法都是针对null值进行转换的,不适用于其他假值(如undefined、false、0和字符串等)。如果需要将其他假值转换为字符串,可以使用相同的方法。 ### 回答3: 在JavaScript中,我们可以通过几种不同的方法将null值转换为字符串。下面我将向你展示一种常见的方法。 最常用的方法是使用条件(if)语句来检查值是否为null,然后将其转换成字符串。下面是一个示例代码: ```javascript let value = null; // 定义一个值为null的变量 if (value === null) { // 使用条件语句检查值是否为null value = ''; // 如果值为null,则将其转换成字符串 } console.log(value); // 输出结果为 '' ``` 在这个示例中,我们创建了一个名为value的变量,并将其赋值为null。然后我们使用条件语句(if语句)来检查value的值是否为null。如果它是null,我们将其转换成字符串''。 这种方法非常简单而且易于理解。但请注意,这只适用于将null转换为字符串。如果你需要将其他类型的值转换成字符串,你可能需要使用不同的方法。 希望这个回答对你有所帮助!如果你还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值