点击上方SQL数据库开发,关注获取SQL视频教程

SQL专栏

SQL数据库基础知识汇总

SQL数据库高级知识汇总

SQL在使用过程中,经常会遇到一些奇奇怪怪的小问题,今天给大家总结一下常见的几个问题该如何处理。

小数转成百分数

我们在写SQL的时候有时候希望将小数转换成百分数显示,可以这样写:

SELECT CONVERT (VARCHAR(20),CONVERT ( DECIMAL (18, 2),ROUND(A*100.0/B, 2) ) ) + '%' AS Rate

(提示:可以左右滑动代码)

例如:

SELECT CONVERT (VARCHAR(20),CONVERT (DECIMAL (18, 2),ROUND(2*100.0/3, 2)) ) + '%' AS Rate

结果:

代码解释:

ROUND(待四舍五入小数,四舍五入位数):是四舍五入,但是并不会改变数字的长度。

CONVERT():第一个CONVERT,将四舍五入完的小数截取小数位数,通过DECIMAL(18,2)实现控制小数位数为2

CONVERT():第二个convert,将四舍五入并截取小数位数的数字转化为字符串类型,后加百分号,完成百分比显示

注意两点:

  • 被除数不为0

  • 除数先转换成浮点型(这里我们使用100.0将2转换为了浮点型)。

修改表结构后不能保存

我们经常会遇到这样的问题,当我们修改完表结构后,点击保存会弹出一个警告说不允许保存更改。

要解决这个问题,我们需要修改一下相关配置。

点击菜单栏上的【工具】—【选项】—【设计器】,取消选中【阻止保存要求重新创建表的更改】,点确定回来重新修改表结构就可以正常修改了。如下图:

查询分析器显示行号

这个对一些调试SQL代码的非常有用,因为SQL报错都会提示你报错的位置在第几行,显示行号就可以快速锁定位置。

要显示行号还是在上面的选项对话框中配置,具体如下:

选中【行号】即可显示代码行数。

字符串与日期类型转换

字符串和日期类型一般都可以相互转换,主要是使用CONVERT()函数来进行转换。

将字符串转换为DATETIME格式,

SELECT CONVERT(DATETIME,'2018-06-26 09:54:30.027');

将日期类型转换为字符串

SELECT CONVERT(VARCHAR(10),'2018-06-26 09:54:30.027',120)--末尾的120是字符串显示格式的一种参数

常用字符串处理函数

CHARINDEX(SUBSTR,STR)

返回子串 SUBSTR在字符串 STR中第一次出现的位置,如果字符SUBSTR在字符串STR中不存在,则返回0;

SELECT CHARINDEX('数据','SQL数据库开发')--结果:4

LEFT(STR, LENGTH)

从左边开始截取STR,LENGTH是截取的长度;

SELECT LEFT('SQL数据库开发',6)--结果:SQL数据库

RIGHT(STR, LENGTH)

从右边开始截取STR,LENGTH是截取的长度;

SELECT RIGHT('SQL数据库开发',6)--结果:L数据库开发

SUBSTRING(STR,N ,M)

返回字符串STR从第N个字符开始,截取之后的M个字符;

SELECT SUBSTRING('SQL数据库开发',4,3)--结果:数据库

REPLACE(STR, STR1, STR2)

将字符串STR中的STR1字符替换成STR2字符;

SELECT REPLACE('SQL数据库开发', 'SQL', 'sql')--结果:sql数据库开发

LEN(STR)

计算字符串STR的长度;

SELECT LEN('SQL数据库开发')--结果:8

REVERSE(STR)

把字符串倒置;

SELECT REVERSE('SQL数据库开发')--结果:发开库据数LQS

复制表数据

INSERT INTO TableName1 (field1, field2, field3)SELECT field4, field5, field6 FROM TableName2

注意:被复制的表的列和复制表的列数据类型需要一致

字母大小写的转换

将大写字母改为小写字母

UPDATE TableName SET Field = LOWER (Field)

将小写字母转化成大写字母

UPDATE TableName SET Field = UPPER(Field)

删除表/数据

DELETE FROM TableName

  • 只是删除表中某些数据,表结构还在.。

  • DELETE 可以带WHERE子句来删除一部分数据,例如 DELETE FROM Student WHERE Age > 20

  • 自动编号不恢复到初始值。

TRUNCATE TABLE TableName

  • TRUNCATE 语句不能跟where条件,无法根据条件来删除,只能全部删除数据。

  • 自动编号恢复到初始值。

  • 使用TRUNCATE 删除表中所有数据要比DELETE效率高的多,因为TRUNCATE 操作采用按最小方式来记录日志.

  • TRUNCATE删除数据,不触发DELETE触发器。

DROP TABLE  TableName

  • 删除表本身,即表中数据和表结构(列、约束、视图、键)全部删除。

——End——

关注SQL数据库开发公众号,在后台回复关键字:资料领取,可以获取一份精心整理的技术干货。

推荐阅读

  • 字节跳动是个"疯子"!

  • 最强IDE PyCharm 2019.3 重磅发布!

  • SQL Server查询语句性能优化技巧

点击「」了解SQL训练营

es6 日期字符串转日期_小数转成百分数,日期字符串互相转换,这几个SQL问题该如何解决?...相关推荐

  1. java小数转换成百分数_在java中如何把小数转化成百分数

    import java.text.NumberFormat; public class Test { //在java中如何把小数转化成百分数 public static void main(Strin ...

  2. 小数点化分数的过程_小数怎么化成分数

    0分 0 40.0KB 2017-10-22 小数化成分数.doc[自研课] 旧 知 链 接 新 知 自 研 [自研课本情景图和内容,初步了解小数化分数的1.0.1表示( )分之( ); 2.0.3表 ...

  3. python对日期型数据排序_在python中对日期字符串进行排序,最好不使用日期对象...

    所以,我有一个字符串列表,这些字符串的格式都是Month DayNumber,比如 ['March 1', 'March 9', 'April 14', 'March 12'] 我需要对列表进行排序, ...

  4. mysql 日期和时间函数_介绍一下mysql的日期和时间函数

    介绍一下mysql的日期和时间函数 mysql> SELECT PERIOD_DIFF(9802,199703); -> 11 DATE_ADD(date,INTERVAL expr ty ...

  5. mysql以下日期函数正确的_[数据库]MYSQL基础03(日期函数)

    [数据库]MYSQL基础03(日期函数) 0 2015-10-29 01:00:09 工作中对日期的处理是经常遇到的,需求可能多种多样,因此重点介绍. 1.获取当前日期select NOW()-- 结 ...

  6. java计算任意2个日期内的工作日_计算任意2个日期内的工作日(摘抄)

    思路不错,对时间的操作挺全面,参考一下.代码如下: package test; import java.text.SimpleDateFormat; import java.util.Calendar ...

  7. angular 判断字符串为空_总结:44个Python3字符串内置方法大全及示例

    概述 Python中字符串是作为一种强大的处理工具集的存在,而不是类C中使用的那么难受.因为Python提供了一系列字符串操作的方法,从大小写转换.切片操作到查找等等应有尽有,几乎满足日常的使用场景, ...

  8. 字符串删除首尾_[LeetCode] 459. 重复的子字符串

    题目链接: https://leetcode-cn.com/problems/repeated-substring-pattern 难度:简单 通过率:42.6% 题目描述: 给定一个非空的字符串,判 ...

  9. java 将字符串数组清空_在Java中如何将字符串集转换为字符串数组

    详细内容 在Java中将字符串集(Set)转换为字符串数组(String[])的方法有:使用for循环,使用Set.toArray()方法,使用Arrays.copyOf()方法等等.下面我们就来具体 ...

最新文章

  1. 让织梦内容页arclist标签的当前文章标题加亮显示
  2. mysql修改字段为现在时间_mysql如何修改字段自动生成时间
  3. XCTF-MISC-新手区:pdf
  4. 简单说说通讯设备的热设计
  5. 【sqlite常用操作SQL语句】
  6. php流程控制作业题,php流程控制
  7. Android日志[进阶篇]二-分析堆栈轨迹(调试和外部堆栈)
  8. 推理集 —— 现场的观察
  9. [bzoj3585] Rmq Problem / mex
  10. SDL2.0超简单入门 100行代码实现播放wav声音文件
  11. FIR versus IIR Butterworth Chebyshev Bessel Filter
  12. C语言实现根据用户输入的整数求和(两种方法)
  13. Oracle AutoVue 使用范围
  14. python getcwd_Python os.getcwd()函数的实际应用方案介绍
  15. Ubuntu18.04启动后键盘和鼠标失灵
  16. 数据库理论 05 关系数据库设计——基于《数据库系统概念》第七版
  17. 出版java类的书籍需要多少钱,出版一本书需要花费多少资金?
  18. 如何快速一次性卸载所有python包(第三方库)呢?
  19. 【转载】讲真,认知几乎是人和人之间唯一的本质差别。
  20. 16进制字符串转字节

热门文章

  1. DelphiMVC连接池配置
  2. 【转】Jenkins怎么启动和停止服务
  3. gpedit msc组策略面板 win10在哪里_Win10系统gpedit.msc在哪?Win10系统gpedit.msc组策略打不开怎么办?...
  4. python数字替换成中文replace_Python3字符串替换replace(),translate(),re.sub()
  5. 简单python数据获取分析_python学习——简单数据分析
  6. python 内存溢出能捕获吗_python之记录一次内存溢出
  7. Java-发送邮件descriptor
  8. SQLite3扩展C API
  9. 用友功能传送错误功能加密服务器组件加密服务器错误拒绝访问,用友U8v8.72单机版,登录时系统提示:不能登录到加密服务器。-用友U8...
  10. c++运动学正反解 ros_朔州智能【机器人关节臂】哪家强