最近在知乎上看到一个问题:一行代码可以做什么?答题者数万计,都是一些非常“高端”的操作,就在想一行SQL代码能做什么呢?

SQL一行代码其实有很多很多,一些常见的比如:

SELECT * FROM TableName

INSERT INTO TableName VALUES(...)

TRUNCATE TABLE TableName .....

这些就没什么意思了,我们来给大家看一些比较“高级”的。

1、复制表结构

SELECT * INTO Customers_bak FROM Customers WHERE 1=2;
或者
SELECT TOP 0 * INTO Customers_bak FROM Customers;

可以得到与Customers 表结构一样的Customers_bak ,而且Customers_bak 中没有数据。

2、查询表里是否存在数据

SELECT TOP 1  1  FROM Customers

结果如下:

注:第一个1是查询是否存在一条记录,第二个1就是单纯的数值1。

3、随机获取一行数据

表Customers中数据如下:

现在随机获取一行数据

SELECT TOP 1 * FROM Customers ORDER BY NEWID();

结果如下:

注:多次执行,结果会不一样

4、获取第6到10行的记录

表Person数据如下:

获取第6到10行数据

SELECT TOP 5 * FROM (SELECT TOP 10 * FROM Person ORDER BY ID ) a ORDER BY ID DESC

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

结果如下:

注:如果希望是升序,可以在外面在加一层SELECT子查询对ID进行升序排序。

5、对空值赋默认值

SELECT  ISNULL(Price,0) FROM  Orders

注:Price为空值时会默认赋0

6、将日期转换成文本格式

SELECT  CONVERT(VARCHAR(10),CreateDate,120) FROM Students

注:CreateDate为带时间的完整日期格式,执行后会得到不带时间的字符串,如'2020-05-31'

7、保留2位小数

SELECT CAST(Amount as NUMERIC(18,2)) FROM Orders

注:Amount是带2位以上的小数格式,转换后的小数会四舍五入。

8、删除重复记录(除了主键不同,其他字段均相同)

表Person数据如下:

删除其中除ID以为其他都重复的记录

DELETE FROM Person WHERE ID NOT IN (SELECT MAX(ID) FROM Person GROUP BY Name,Age,Sex,Phone)

删除后结果如下:

9、查询当前数据库中的所有表名

SELECT   NAME FROM SYSOBJECTS WHERE TYPE='U'

结果如下:

10、查询某个表里的所有列名

SELECT NAME FROM SYSCOLUMNS WHERE ID=OBJECT_ID('Person')

结果如下:

11、将B表中的字段内容更新到A表

UPDATE A SET A.Name=(SELECT B.Name FROM B WHERE A.ID=B.ID)

12、获取笛卡尔积

SELECT A.*,B.* FROM A,B

13、按姓氏笔画多少排序

SELECT Name FROM Person ORDER BY Name  Collate Chinese_PRC_Stroke_CI_AS

结果如下:

注:默认是直接按姓氏拼音排序

14、延迟3秒执行查询语句

WAITFOR DELAY '0:0:3' SELECT * FROM Person

结果如下:

15、将查询结果转换为XML格式

SELECT * FROM Person WHERE ID=1 FOR XML PATH

结果如下:

16、将小数转换成百分数

SELECT CAST(CAST((0.8888*100) AS NUMERIC(18,2)) as VARCHAR(20)) + '%'

结果如下:

17、处理除数为0

SELECT ISNULL(A/NULLIF(B,0),1) FROM TABLEA
或
SELECT  CASE WHEN B=0 THEN 1 ELSE A/B END  FROM TABLEA

注:A为任意数值,B为0

下次想到一些好用的SQL代码再分享给大家,如果你平常也有一些好用的SQL代码,欢迎可以在留言区分享一下。

点击下方卡片进行关注,获取更多内容

点分享

点收藏

点点赞

点在看

一行SQL代码能做什么?相关推荐

  1. python可以干嘛知乎-一行Python代码能做什么?

    原标题:一行Python代码能做什么? 作者:笑虎 来源:知乎 首先你要了解一下Python之禅,一行代码输出"The Zen of Python": python -c &quo ...

  2. python代码库能干什么_一行Python代码能做什么?

    很典型的文章,基本可以展示Python代码到底有多黑魔法.虽然文中有些案例连我都觉得走火入魔,但真的很值得一看... 自从08年接触Python,就有爱不释手的感觉,逐渐地,有些不忍地疏远了Perl ...

  3. 一行Python代码能做什么?

    自从接触Python,就有爱不释手的感觉,逐渐地,有些不忍地疏远了Perl 和Shell编程,因为python 的优雅么? 不全是,主要是可以高效开发吧. 那一行代码可以干什么呢? 有趣 比如我的英文 ...

  4. python一行代码是什么意思_一行Python代码能做什么?

    很典型的文章,基本可以展示Python代码到底有多黑魔法.虽然文中有些案例连我都觉得走火入魔,但真的很值得一看... 自从08年接触Python,就有爱不释手的感觉,逐渐地,有些不忍地疏远了Perl ...

  5. 一行Python代码能实现这么多丧心病狂的功能?(代码可复制)

    最近看知乎上有一篇名为<一行 Python 能实现什么丧心病狂的功能?>(https://www.zhihu.com/question/37046157)的帖子,点进去发现一行Python ...

  6. python join函数_一行 Python 代码能实现这么多丧心病狂的功能?

    最近看知乎上有一篇名为<一行 Python 能实现什么丧心病狂的功能?>(https://www.zhihu.com/question/37046157)的帖子,点进去发现一行Python ...

  7. 极客无极限 一行HTML5代码引发的创意大爆炸

    摘要:一行HTML5代码能做什么?国外开发者Jose Jesus Perez Aguinaga写了一行HTML5代码的文本编辑器.这件事在分享到Code Wall.Hacker News之后,引起了众 ...

  8. 一行 Python 代码能实现这么多丧心病狂的功能?(代码可复制)

    最近看知乎上有一篇名为<一行 Python 能实现什么丧心病狂的功能?>(https://www.zhihu.com/question/37046157)的帖子,点进去发现一行Python ...

  9. 一行 Python 代码能实现这么多丧心病狂的功能?

    最近看知乎上有一篇名为<一行 Python 能实现什么丧心病狂的功能?>(https://www.zhihu.com/question/37046157)的帖子,点进去发现一行Python ...

最新文章

  1. 【翻译】SQL Server索引进阶:第三级,聚集索引
  2. 我说分布式事务之消息最终一致性事务(一):原理及实现
  3. 进制在c语言中的作用,C语言中的进制是什么意思?
  4. 批量建立EXCHANGE邮件帐号建立三部曲
  5. python 各种排序
  6. 语音识别技术应用领域介绍
  7. uboot驱动模型(DM)分析(二)
  8. 六石编程学:功能要定期测试
  9. 到底什么是移动边缘计算?
  10. 对算法的认识——逻辑回归
  11. Java面向对象编程——什么是面向对象
  12. C语言运算符优先级列表(超全)
  13. ffmpeg/avconv
  14. Hadoop3.3.1 踩坑笔记
  15. 怎么把html导入iphone,电脑上的视频怎么导入iphone8?电脑视频导入苹果手机教程...
  16. uniapp消息推送
  17. 前阿里政委张丽俊:人,是CEO最重要的一课
  18. Linux命令·df·du
  19. 使用selenium自动秒抢淘宝商品(附详细入门指南)
  20. JAVA面向对象程序设计-FeiGe快递系统-继承II

热门文章

  1. xampp index.php报错,XAMPP配置出现403错误“Access forbidden!”的解决办法
  2. ansi编码_了解字符编码,不再恐惧文件乱码
  3. ORA-12170: TNS:Connect timeout occurred
  4. 知道自己想要什么,保持自己的节奏。
  5. MS15-035 EMF文件处理漏洞分析与POC构造
  6. 404错误,500错误页面的代表意思
  7. [js高手之路]从原型链开始图解继承到组合继承的产生
  8. C# 结构体 枚举类型
  9. linux下nginx启动停止重启控制脚本
  10. linux shell 脚本攻略学习11--mkdir和touch命令详解