今日的我,有些郁闷,sql习题做的好好的,但就是有一道题一直卡着,做了这道题我就可以升级为三颗星了
Weather Observation Station 13这题简直就是有毒吧
这题是说对LAT_N这个属性进行求和,但是要用Truncate这个函数把数值精确到小数点后四位,同时要求38.7880<LAT_N<137.2345
上面是我写的,下面是我看评论区的外国友人的解答,但是单独运行的时候,我的就显示错误,他们的答案又可以,我真的是很开心
好吧,它说咱TRUNCATE这个函数附近有标点函数的错误,人嘛,知错要改
我们就按照上面外国友人的答案修改一下格式吧
首先改一下我们的分号,那就去掉嘛,因为一般书上都会有分号,这分号,不要也罢,我刘家赘婿,岂是你一个区区分号就能打败的?
然后仔细比对,哦,4前面那里是不是要加个空格呀,好像大于符号和小于符号左右都有空格,我是不是写太近了所以编译器不认识,至于其他行开头的空格,是他个人的书写习惯吧,那我们就试运行一下吧
我就呵呵了,那我改的和你一模一样叻
大家一起来找不同现在我算是写的一模一样了吧,连 空格都完美复制,大小写也完全一致,简直就是孪生兄弟,还有谁?那就再试试吧
果然是试试就逝世
那我再运行外国友人的呢
抓不住爱情的我,总是眼睁睁看它流走
哈哈哈,可能有朋友看出问题了
我是在MYSQL中运行成功的,SQL SERVER中这个代码并不行
好像是因为SQL SERVER中TRUNCATE这个指令只是用来删除表数据的,并没有这个函数功能
mysql里面TRUNCATE才是用来截取小数位数的
那我们试试在SQL SERVER中用round函数呢
还是不行诶,难道是进位的时候刚好?所以后面都变成0了?
果然,它就这么巧
那就用convert函数,这个例子说明的convert函数又不是很详细,我理解的convert(数值类型(长度,保留的小数位数),你的原始数值)
然后有错了,我泪了,不过相信学计算机的各位都是这样痛苦过来的,我现在已经没有感觉了,说的是number不是系统定义的类型
于是我又查了一下
那就改!
孩子哭了,终于行了
要运行我就三个库都跑一下,着实被这道题气到了
呵呵,所以说很容易混啊,为什么我前面要加分号,这是oracle的语法啊
我还就要豪横一下,让你气我,终于完了这道题,完结撒花✿✿ヽ(°▽°)ノ✿
谢谢你的认可,我终于三星了呜呜呜,巴适