Postgres的价值''单引号vs NULL

时间:2014-11-06 11:27:11

标签: sql postgresql null

我可以知道Postgres中''NULL之间的区别吗?

我的列类型设置为character varying (255)

在我的表中,列字段设置为''和NULL。

记录如下:

|Name |Mobile|
|James| ''   |
|John |      |

但是当我选择查询时:

  1. Select Name from user where Mobile ='';
  2. Select Name from user where Mobile is null;
  3. 两个人都给我不同的结果。

    感谢是否有人能够帮助和协助此事。

    由于

2 个答案:

答案 0 :(得分:3)

  • NULL用于表示缺失值
  • ''是一个对应于空字符串的值

我建议在\pset null '(null)'上添加.psqlrc。然后,

SELECT Name, Mobile from user

将返回

|Name |Mobile|
|James|      |
|John |(null)|

在命令行上使用postgres时,可以更容易区分空字符串和缺失值。

答案 1 :(得分:0)

你甚至不能这样做:

Select Name from user where Mobile = null

因为NULL不等于“NULL”。 (null值表示未知值,并且不知道两个未知值是否相等。)此行为符合SQL标准。

Source