2023/7/17 什么是using 什么又是round?

文章讲述了在SQL中进行连接查询时,using和on关键字的差异,using主要用于等值连接且列名相同的情况,而on则更灵活,可处理不同状态的需求。此外,文章还探讨了round函数在四舍五入操作中的行为,指出其并非对所有位数进行四舍五入,而是从指定位置的下一位开始。
摘要由CSDN通过智能技术生成

今天在做SQL题的时候,碰到一个连接查询的题

我很自然的开始写代码:

select
 
xxx 

from
    表1
left join 表2 on 表1.xxx=表2.xxx 

然后乏味的提交结果,这时候我觉得可能我的SQL速度会不会有点慢,我像打开题解看一下

然后我发现了一个我没见过的东邪,又或者已经还给老师了!

using

当时的代码大概是这样的:

select

xxx

from 
    表1
left join 表2
 
using(列名)

然后我也好奇的去尝试了一下,很显然的成功了,然后我试图了解了一下它

关于using 它是一个关键字,一般用于简化连接查询,但是我们平常使用的on和它有什么区别呢?

using:在使用using的时候我发现他和on的区别大概是:

1.它大概只可以判断等值,也就是说只有在判断两个值相等的时候的连接才可以用

2.在比较的两个表的数据时,列名相同,数据类型相同,然后从表1中取出的值去和表2比较,相等才会保留结果

但是on:

可以在连接后根据不同的状态需求来构建自己所需的sql,他可以把两个不同列表名的数据进行比较,但是有可能会碰到重复的列名的时候需要加上表名

然后就是接着下一道sql,依旧开始入手

我们看一下题:

 看到这个题的时候我开始入手,写出来我自己的SQL语句


select 
p.project_id,avg(experience_years ) as average_years 
from 
Project p
left join employee e 
using(employee_id )
group by project_id

依旧觉得这道题很简单,然后我信誓旦旦的点了提交

我看到测试用例的时候我还在嘴硬多两个零算错吗,结果看到第三个才发现我的数据根本不是0的问题,预期结果中出现的是四舍五入的值

我脑子里关于SQL中四舍五入空空的

根据查询我发现了round 

round

它的使用方式大概是这样的

round(数据,数字)

这里的数据指的是你本身需要的数据值,需要你写出来

这里的数字大概分三种

正数:

这里的数字如果是正数,就会将你的数据按照你的数字进行处理,来保留小数点后的几位

0:

这里如果是0,则会将你的数据去掉小数点进行四舍五入保留

负数:

这里如果是负数的话,则表示你不需要小数点,会把小数点前面的对应数量位进行四舍五入变成0

这个文字比较难理解我《举个栗子》

round(1234.56,-1)
如果这里是-1 它最后的值是 1230


round(1234.56,-2)
如果这里是-2 它最后的值是 1200

这都是不进位的情况

但是通过我的测试

select round(1245,-1);
#这个结果是1250

我继续测试了round(1245,,-2)

我理所应当的决定答案应该是1300

但是:

round(1245,-2);
#这个结果其实并不是1300 而是1200

 所以在这个round中它的四舍五入并不是把后面的每一位都计算,而是直接从当前所需要的位置下一位,向上四舍五入而已

好啦今天这就是我的分享

我是范,一个在努力的人,下次再见!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值