Sql 常见问题

简介: join on and vs join on whereSELECT *FROM OrdersLEFT JOIN OrderLines ON OrderLines.OrderID=Orders.IDWHERE Orders.

join on and vs join on where

SELECT *
FROM Orders
LEFT JOIN OrderLines ON OrderLines.OrderID=Orders.ID
WHERE Orders.ID = 12345
SELECT *
FROM Orders
LEFT JOIN OrderLines ON OrderLines.OrderID=Orders.ID 
    AND Orders.ID = 12345

count(*) vs sum()

Oracle下:
count()会统计所有不为空的行数,count() for the not null count。
sum(null)不做汇总,sum(0)输出为0

-- 输出为1
select count(0) from dual;
-- 输出为 0
select count(null) from dual;
-- 不输出
select sum(null) from dual;
-- 输出为0 
select sum(0) from dual;

SQL中= null与is null的区别

SELECT * FROM table WHERE field = null;
SELECT * FROM table WHERE field IS null;

第一行SQL将不会返回任何内容,而第二行将会返回field字段为NULL的行。

原因如下:

在SQL中,null值与另外一个值(包括null值)的逻辑比较(=,!=,<>等),返回的结果也是null,而这个null值在where子句中是被当做false来看待的。null表示”未知“,所以比较的结果也是”未知“。

http://stackoverflow.com/questions/354070/sql-join-where-clause-vs-on-clause

相关文章
|
SQL 存储 Oracle
sql分组查询出现问题
在使用sql分组查询时,出现sql_mode=only_full_group_by异常。
170 0
|
SQL 监控 关系型数据库
|
SQL 移动开发
SQL疑难问题
原文:SQL疑难问题       最近,遇到并解决一个SQL上的疑难问题。考勤系统,记录着员工进出公司的刷卡记录。而员工刷卡并不规范,存在刷多次的情况。例如:出去时连续刷多次,进来时也连续刷多次。筛选有效刷卡记录数据的规则:对于出去时连续刷多次(包含一次)的情况,取第一次刷卡记录;对于进来时连续刷多次(包含一次)的情况,取最后一次的刷卡记录。
970 0
|
SQL 数据格式 XML
SQL 问题记录
今天在处理SQL的时候遇到几个问题: 1、如果指定了 SELECT DISTINCT,那么 ORDER BY 子句中的项就必须出现在选择列表中   select distinct id from 收费站 order by name   //  错误  改成: select distinct...
884 0
|
SQL 测试技术 安全
SQL中文全文搜索效果不理想问题的解决
在项目中使用了SQL的全文搜索用来搜索中文的企业名称,但效果一直不理想,比如要搜索“北京三一重工有限公司”,使用“三一”就搜索不到。因是第一次使用SQL的全文搜索,起初以为是SQL的中文分词功能弱的问题,就没有细究。
|
3月前
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
5月前
|
SQL 存储 监控
SQL Server的并行实施如何优化?
【7月更文挑战第23天】SQL Server的并行实施如何优化?
135 13
|
5月前
|
SQL
解锁 SQL Server 2022的时间序列数据功能
【7月更文挑战第14天】要解锁SQL Server 2022的时间序列数据功能,可使用`generate_series`函数生成整数序列,例如:`SELECT value FROM generate_series(1, 10)。此外,`date_bucket`函数能按指定间隔(如周)对日期时间值分组,这些工具结合窗口函数和其他时间日期函数,能高效处理和分析时间序列数据。更多信息请参考官方文档和技术资料。
|
5月前
|
SQL 存储 网络安全
关系数据库SQLserver 安装 SQL Server
【7月更文挑战第26天】
73 6
|
5月前
|
存储 SQL C++
对比 SQL Server中的VARCHAR(max) 与VARCHAR(n) 数据类型
【7月更文挑战7天】SQL Server 中的 VARCHAR(max) vs VARCHAR(n): - VARCHAR(n) 存储最多 n 个字符(1-8000),适合短文本。 - VARCHAR(max) 可存储约 21 亿个字符,适合大量文本。 - VARCHAR(n) 在处理小数据时性能更好,空间固定。 - VARCHAR(max) 对于大文本更合适,但可能影响性能。 - 选择取决于数据长度预期和业务需求。
469 1