一行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

结果如下:

一行SQL代码能做什么?(上)

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



3、随机获取一行数据

表Customers中数据如下:

一行SQL代码能做什么?(上)

现在随机获取一行数据

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

结果如下:

一行SQL代码能做什么?(上)

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



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

表Person数据如下:

一行SQL代码能做什么?(上)

获取第6到10行数据

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


结果如下:

一行SQL代码能做什么?(上)

注:如果希望是升序,可以在外面在加一层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数据如下:

一行SQL代码能做什么?(上)

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

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

删除后结果如下:


一行SQL代码能做什么?(上)



上一篇:Python可视化学习(饼状图,坐标系...)


下一篇:重建二叉树