首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在SQL中从表中进行选择时,*和NULL有什么区别?

在SQL中从表中进行选择时,*和NULL有什么区别?
EN

Stack Overflow用户
提问于 2013-04-07 14:43:36
回答 4查看 111关注 0票数 0

我对SQL非常陌生,在从表中进行选择时,我找不到描述*和NULL之间区别的资源。

例如:

代码语言:javascript
运行
复制
SELECT null, null, *, null FROM items

这有什么不同于:

代码语言:javascript
运行
复制
SELECT null, null, null, null FROM items

这有什么不同于:

代码语言:javascript
运行
复制
SELECT * FROM items

如果一开始只有四列呢?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-04-07 14:47:47

当然有。

第一个:

代码语言:javascript
运行
复制
SELECT null, null, null, null FROM items

我将选择四列,每列中都有NULL值,无论这个表中的值和列是什么,都会选择但是返回的行数将等于items表中的行数,如果items表中有n行,它将返回n行,其中所有列都具有NULL值。

SQL Fiddle Demo

然而,

代码语言:javascript
运行
复制
SELECT * FROM items

将选择具有此表items中的所有值的所有列。

因此它们是完全不同的。

在您的示例中,因为只有四列,所以第一个列将始终选择四个列,其中第二个列将使用包含的值选择它们。

票数 -2
EN

Stack Overflow用户

发布于 2013-04-07 15:03:50

是的,每一个都是不同的。当您从表中选择所提供的查询时,表中的列数并不重要。自己看看每个查询的区别。

  1. 从项目中选择null、null、*、null;

Click here to see the output

  • SELECT null,null FROM items;

Click here to see the output

  • SELECT * FROM items;

Click here to see the output

票数 0
EN

Stack Overflow用户

发布于 2013-04-07 15:11:11

第一个查询将显示与表中相同数量的记录。但是在select查询中,这些值将被替换为空值。

代码语言:javascript
运行
复制
SELECT null, null, null, null FROM items

这类似于

代码语言:javascript
运行
复制
SELECT 5, 5, 5, 5 FROM items

第二个查询,

代码语言:javascript
运行
复制
SELECT * FROM items

显示带有值的行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15859700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档