一行SQL代码能做什么?

最近在知乎上看到一个问题:一行代码可以做什么?答题者数万计,都是一些非常“高端”的操作,就在想一行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代码,欢迎可以在留言区分享一下。

(0)

相关推荐

  • SQL Server 中 ROWLOCK 行级锁

    一.ROWLOCK的使用 1.ROWLOCK行级锁确保,在用户取得被更新的行,到该行进行更新,这段时间内不被其它用户所修改.因而行级锁即可保证数据的一致性,又能提高数据操作的并发性. 2.ROWLOC ...

  • 平时常用sql

    总结一下平时用到最多的sql语句 1.特殊日期 1 --今天凌晨 2 SELECT DATEADD(dd,DATEDIFF(dd,0,GETDATE()),0) 3 --明天凌晨 4 SELECT D ...

  • MySQL基础SQL命令---增删改查

    MySQL基础SQL命令---增删改查

  • 一行代码可以做什么?

    实现地图投影 圆桌乒乓球 实时换脸 米老鼠的耳朵 自动触发动图 动态天象图 歌词云图 万圣节南瓜 美丽螺旋 xec '''\nfrom turtle import *\nfor i in range( ...

  • 程序员的一行代码能做什么?黑客:想做什么就做什么!

    信息化时代,人们离不了网络,人们的额个人信息.生活习惯.衣食住行都在互联网中形成了自己的一个投影,在互联网那头的人可能没见过你,但它却知道你穿多大码的衣服.爱好什么口味的外卖.经常打车去哪里,交电费的 ...

  • 一行Python代码

    Life is short, just use Python. 自从08年接触Python,就有爱不释手的感觉,逐渐地,有些不忍地疏远了Perl 和Shell编程,因为python 的优雅么? 不全是 ...

  • 一行 Python 代码实现并行,骚技能!

    当我用Python写第一行代码的那一天,我着迷于简单性,流行性及其著名的单行代码. 1.交换两个变量 # a = 4 b = 5a,b = b,a# print(a,b) >> 5,4 让 ...

  • 不到 50 行 Python 代码,做个刮刮卡

    来源:Python 技术「ID: pythonall」 刮刮卡通常指卡上的一种覆盖数字和字母密码等的涂层,通常包括纸质和电子两种类型,刮刮卡在市场上有着比较广泛的应用,我们见到最多的应该是各类抽奖活动 ...

  • 再见,Excel!一行Pandas代码,即可实现漂亮的 “条件格式”!

    Pandas 是数据科学家做数据处理时,使用最多的工具. 对比Excel,我们可以发现:Pandas基本可以实现所有的Excel的功能,并且比Excel更方便.简洁,其实很多操作我们在过去的文章中,或 ...

  • 神操作!一行Python代码搞定一款游戏?厉害了程序员!

    Python大本营 昨天 一行代码能干啥? 这一款的迷宫游戏厉害了 迷宫游戏,不知道大家有没有玩过,以前非常风靡,各种大小的迷宫设计,尤其是Web版的迷宫早些年的时候非常流行,但是Python一行代码 ...

  • pandas100个骚操作:一行 pandas 代码搞定 Excel “条件格式”!

    关键时间,第一时间送达! 来源:Python数据科学 作者:东哥起飞 大家好,我是你们的东哥. 本篇是pandas100个骚操作系列的第 7 篇:一行 pandas 代码搞定 Excel " ...

  • 如何隐藏行或列,一行VBA代码实现,Excel操作技巧

    No.1 隐藏操作在Excel操作当中,在鼠标右键里有快捷方式. 使用起来比较简单. 本节将介绍如何通过vba代码实现. 因为在程序处理数据的过程中,会用到隐藏功能. 比如某些统计过程当中,有些数据不 ...