看到了很有一些很有意思的例子,拿出来分享一下
所有的一切源于一个实验,在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
分享到:
相关推荐
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 ...
至于`SUM(1)`,当它与`COUNT(*)`一起使用时,两者在计算满足条件的记录数方面是等效的。`SUM()`函数可以接受任何数值表达式,不只是1,它会返回传入值乘以满足条件的行数。但请注意,`SUM()`通常用于计算特定列的...
(SELECT COUNT(1) FROM tableB WHERE orderStatus = 1) AS 'B', (SELECT COUNT(1) FROM tableC WHERE orderStatus = 2) AS 'C' ``` 为了进一步展示如何将这些统计数据拼接成一个字符串,可以使用以下方式: ```...
SELECT COUNT(*), SUM(column), AVG(column), MIN(column), MAX(column) FROM table_name; ``` - **示例**:计算员工总数。 ```sql SELECT COUNT(*) FROM s_emp; ``` #### 3. 使用SQL*Plus编辑和执行SQL - ...
SELECT column1, COUNT(*) FROM table_name GROUP BY column1 HAVING COUNT(*) > 1; ``` 10. **ORDER BY子句** 使用`ORDER BY`对结果进行排序,可以指定升序`ASC`或降序`DESC`: ``` SELECT * FROM table_name...
代码如下: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 ...
5. **聚合函数**:处理聚合函数,如COUNT()、SUM()、AVG()等。 - 对于每个分组,计算相应的聚合值。 6. **HAVING**:应用HAVING子句中的过滤条件。 - HAVING子句与WHERE子句类似,但HAVING应用于分组后的结果,...
4. **分组查询**:`GROUP BY`子句结合聚合函数(如`COUNT`, `SUM`, `AVG`, `MAX`, `MIN`)可实现数据分组统计: ```sql SELECT Department, COUNT(*) AS EmployeeCount FROM Employees GROUP BY Department; `...
SELECT column1, COUNT(*) FROM table_name GROUP BY column1 HAVING COUNT(*) > 1; ``` 这个查询会返回在`column1`中有多个不同值的行。 5. **聚合函数**:如COUNT(), SUM(), AVG()等,它们可以用来计算选定...
ABAP中SQL语法详细介绍,包括基础语法和各种聚合函数,如MAX,MIN,AVG,COUNT,SUM,DIV,MOD,CEIL,FLOOR,DIVSION,ROUND,FOR ALL ENTRIES IN.除了各种聚合函数还有字段拆分,连接,子语句查询,字段类型转换,分情况赋值...
在SQL语言中,`SELECT`查询语句是用于从...在实际应用中,还可以结合其他函数和操作,如聚合函数(如`COUNT`, `AVG`, `SUM`, `MAX`, `MIN`)、连接(JOIN)操作、分组(GROUP BY)等,进一步扩展查询的复杂性和功能性。
2. **聚合函数**:如COUNT(), SUM(), AVG(), MAX(), MIN()等,用于计算分组后的统计信息。 ```sql SELECT COUNT(column), AVG(column) FROM table_name GROUP BY another_column; ``` ### 六、合并多个查询...
4. **分组数据**:`GROUP BY`子句将结果按某一列或多列进行分组,常与聚合函数如`COUNT`, `SUM`, `AVG`, `MAX`, `MIN`等配合使用: ```sql SELECT gender, COUNT(*) FROM users GROUP BY gender; ``` 5. **联接...
求和: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...
4. `COUNT(*)`、`SUM()`、`AVG()`、`MAX()`、`MIN()`:聚合函数,用于统计和计算。 ### Select 子句中的通配符 通配符用于模糊匹配,如 `%` 代表任意字符序列,`_` 代表单个字符。例如,`SELECT * FROM Customers ...
本文将通过两个示例详细介绍如何在SQL中使用`COUNT()` 和 `SUM()` 作为查询条件。 首先,让我们来看看`COUNT()`函数的用法。在SQL中,`COUNT(*)`通常用来统计表中的行数,而`COUNT(column_name)`则用来统计某一列非...
SELECT COUNT(*), SUM(salary), AVG(salary) FROM Employees; ``` - **分组与数据筛选**: - `GROUP BY`子句用于根据一个或多个列的值将结果集分组。 - `HAVING`子句用于过滤`GROUP BY`后产生的组。 **示例**: `...
【SQL语句select简单记录总结1】 SQL,全称Structured Query Language,是用于管理和操作数据库的语言。在数据库领域,SQL是不可或缺的一部分,主要用于查询、插入、更新和删除数据。这里我们将对SQL语句中的`...