`

关于select 1 ,select count(1),select sum(1)的使用

阅读更多
看到了很有一些很有意思的例子,拿出来分享一下
所有的一切源于一个实验,在ORA数据库下
create table t (a int ,b int);
insert into t values(2,3);
select 1 from t;

结果:  title: 1
        value: 1

select 0 from t;

结果:  title: 0
        value: 0

    在表a中多插入几行,比如,又插入3行,值随便取,再使用select 1/0 查询,返回的title还是一样,value多了3行,值还是那样,select 1则值为1,select 0则值为0

---------------------------------结论------------------------------------
    所以select n(n为任意常量,浮点数,负数,字符串也可以)只是为了判断select的对象表中是否存在满足条件的记录,存在记录就返回一行。上述select语句还可以加入where子句,比如
select 1 from t where t.B = 3;

    满足条件的记录有多少条,结果就返回多少行,行值为所n所对应的常量值;如果没有符合条件的记录,则提示 no rows returned
---------------------------------应用------------------------------------
    我所能想到的是字符串的拼接。比如要生成一个序列号,头6位统一的为100000,后两位为A,B字段的值,则可以这样生成,然后将结果写到序列号表中
select 100000 || t.A || t.B from t;

---------------------------------讨论------------------------------------
1、select 1 与 select *的区别
    selelct 常量 from ... 对应所有行,返回的永远只有一个值,即常量 。所以正常只会用来判断是否有还是没有(比如exists子句)。而select * from ... 是返回所有行的所有列。
    性能上的差异,关键看你的from和where子句。比如说如果你的where条件中可以通过索引,那显然 select 1 from ... 的性能比 select * from ... 好。
2、select count(1)与select count(*)的区别
   跟表结构有关系:
   如果表中没有主键,那么count(1)比count(*)快
   如果有主键,那么count(主键,联合主键)比count(*)快
   如果表中只有一个字段,count(*)最快
3、select sum(1)的使用
   select count(*)返回所有满足条件的记录数,此时同select sum(1)
   但是sum()可以传任意数字,负数、浮点数都可以,返回的值是传入值n*满足条件记录数m
6
0
分享到:
评论
1 楼 来利强 2011-11-04  

相关推荐

    数据库实验2的实验报告1. 在 studentsdb 数据库中使用 SELECT 语句进行基本查询。 (1)在 student

    SELECT COUNT(DISTINCT student_id), SUM(CASE WHEN score IS NOT NULL THEN 1 ELSE 0 END) FROM grade WHERE course_id = '0003'; ``` - 查询`student_info`的姓名和出生日期,按出生日期降序排列: ```sql ...

    select count()和select count(1)的区别和执行方式讲解

    至于`SUM(1)`,当它与`COUNT(*)`一起使用时,两者在计算满足条件的记录数方面是等效的。`SUM()`函数可以接受任何数值表达式,不只是1,它会返回传入值乘以满足条件的行数。但请注意,`SUM()`通常用于计算特定列的...

    case when和sum case when 写法及拼接字段

    (SELECT COUNT(1) FROM tableB WHERE orderStatus = 1) AS 'B', (SELECT COUNT(1) FROM tableC WHERE orderStatus = 2) AS 'C' ``` 为了进一步展示如何将这些统计数据拼接成一个字符串,可以使用以下方式: ```...

    Oracle中的select大全

    SELECT COUNT(*), SUM(column), AVG(column), MIN(column), MAX(column) FROM table_name; ``` - **示例**:计算员工总数。 ```sql SELECT COUNT(*) FROM s_emp; ``` #### 3. 使用SQL*Plus编辑和执行SQL - ...

    SELECT IN SQL

    SELECT column1, COUNT(*) FROM table_name GROUP BY column1 HAVING COUNT(*) > 1; ``` 10. **ORDER BY子句** 使用`ORDER BY`对结果进行排序,可以指定升序`ASC`或降序`DESC`: ``` SELECT * FROM table_name...

    SQL一条语句统计记录总数及各状态数

    代码如下:SELECT SUM(正确数)+SUM(错误数) AS 总记录数,SUM(正确数),SUM(错误数) FROM ( SELECT COUNT(1) 正确数,0 错误数 FROM TB WHERE STATUS=1 UNION ALL SELECT 0 正确数,COUNT(1) 错误数 FROM TB WHERE ...

    SELECT语句执行顺序

    5. **聚合函数**:处理聚合函数,如COUNT()、SUM()、AVG()等。 - 对于每个分组,计算相应的聚合值。 6. **HAVING**:应用HAVING子句中的过滤条件。 - HAVING子句与WHERE子句类似,但HAVING应用于分组后的结果,...

    SELECT语句的应用 - MS SQL

    4. **分组查询**:`GROUP BY`子句结合聚合函数(如`COUNT`, `SUM`, `AVG`, `MAX`, `MIN`)可实现数据分组统计: ```sql SELECT Department, COUNT(*) AS EmployeeCount FROM Employees GROUP BY Department; `...

    select 回选

    SELECT column1, COUNT(*) FROM table_name GROUP BY column1 HAVING COUNT(*) > 1; ``` 这个查询会返回在`column1`中有多个不同值的行。 5. **聚合函数**:如COUNT(), SUM(), AVG()等,它们可以用来计算选定...

    SAP-ABAP-SQL中的select语句讲解

    ABAP中SQL语法详细介绍,包括基础语法和各种聚合函数,如MAX,MIN,AVG,COUNT,SUM,DIV,MOD,CEIL,FLOOR,DIVSION,ROUND,FOR ALL ENTRIES IN.除了各种聚合函数还有字段拆分,连接,子语句查询,字段类型转换,分情况赋值...

    select 查询语句练习

    在SQL语言中,`SELECT`查询语句是用于从...在实际应用中,还可以结合其他函数和操作,如聚合函数(如`COUNT`, `AVG`, `SUM`, `MAX`, `MIN`)、连接(JOIN)操作、分组(GROUP BY)等,进一步扩展查询的复杂性和功能性。

    25.1 MySQL SELECT语句

    2. **聚合函数**:如COUNT(), SUM(), AVG(), MAX(), MIN()等,用于计算分组后的统计信息。 ```sql SELECT COUNT(column), AVG(column) FROM table_name GROUP BY another_column; ``` ### 六、合并多个查询...

    select 万能select

    4. **分组数据**:`GROUP BY`子句将结果按某一列或多列进行分组,常与聚合函数如`COUNT`, `SUM`, `AVG`, `MAX`, `MIN`等配合使用: ```sql SELECT gender, COUNT(*) FROM users GROUP BY gender; ``` 5. **联接...

    SQLite3 轻量级数据库及SQL语法指导

    求和:select sum(field1) from table1; 平均:select avg(field1) from table1; 最大:select max(field1) from table1; 最小:select min(field1) from table1; 排序:select 字段 from table1 order by 字段(desc...

    VFP SELECT 用法大补

    4. `COUNT(*)`、`SUM()`、`AVG()`、`MAX()`、`MIN()`:聚合函数,用于统计和计算。 ### Select 子句中的通配符 通配符用于模糊匹配,如 `%` 代表任意字符序列,`_` 代表单个字符。例如,`SELECT * FROM Customers ...

    sql中count或sum为条件的查询示例(sql查询count)

    本文将通过两个示例详细介绍如何在SQL中使用`COUNT()` 和 `SUM()` 作为查询条件。 首先,让我们来看看`COUNT()`函数的用法。在SQL中,`COUNT(*)`通常用来统计表中的行数,而`COUNT(column_name)`则用来统计某一列非...

    Select语句大全,适合初学者

    SELECT COUNT(*), SUM(salary), AVG(salary) FROM Employees; ``` - **分组与数据筛选**: - `GROUP BY`子句用于根据一个或多个列的值将结果集分组。 - `HAVING`子句用于过滤`GROUP BY`后产生的组。 **示例**: `...

    [数据库] SQL语句select简单记录总结1

    【SQL语句select简单记录总结1】 SQL,全称Structured Query Language,是用于管理和操作数据库的语言。在数据库领域,SQL是不可或缺的一部分,主要用于查询、插入、更新和删除数据。这里我们将对SQL语句中的`...

Global site tag (gtag.js) - Google Analytics