在数据库查询中,总结了12个高频常用SQL语句,供大家参考学习:
1、复制表结构,不包括数据(用于建立同一个表结构)
SELECT * INTO A_BAK FROM A WHERE 1=2;
或者
SELECT TOP 0 * INTO A_BAK FROM A;
可以得到与A 表结构一样的A_bak ,而且A_bak 中没有数据
2、复制表结构,包括数据(用于数据库表备份)
select * into student_backup from student ;
3、查询表里是否存在数据
SELECT TOP 1 1 FROM table
注:第一个1是查询是否存在一条记录,第二个1就是单纯的数值1。
4、随机获取一行数据
表table数据如下:
现在随机获取一行数据
SELECT TOP 1 * FROM table BY NEWID();
结果如下:
注:多次执行,结果会不一样
5、获取第6到10行的记录
表Person数据如下:
获取第6到10行数据
SELECT TOP 5 * FROM (SELECT TOP 10 * FROM Person ORDER BY ID ) a ORDER BY ID DESC
结果如下:
注:如果希望是升序,可以在外面在加一层SELECT子查询对ID进行升序排序。
6、将日期转换成文本格式
SELECT CONVERT(VARCHAR(10),CreateDate,120) FROM Students
注:CreateDate为带时间的完整日期格式,执行后会得到不带时间的字符串,如’2022-01-31′
7、删除其中除ID以为其他都重复的记录
表table数据如下:
DELETE FROM table WHERE ID NOT IN (SELECT MAX(ID) FROM table GROUP BY Name,Age,Sex,Phone)
删除后结果如下:
8、将B表中的字段内容更新到A表
UPDATE A SET A.Name=(SELECT B.Name FROM B WHERE A.ID=B.ID)
9、获取笛卡尔积分
SELECT A.*,B.* FROM A,B
10、按姓氏笔画多少排序
SELECT Name FROM table ORDER BY Name Collate Chinese_PRC_Stroke_CI_AS
结果如下:
注:默认是直接按姓氏拼音排序
11、将小数转换成百分数
SELECT CAST(CAST((0.8888*100) AS NUMERIC(18,2)) as VARCHAR(20)) '%'
结果如下:
12、处理除数为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
以上是在工作总结常用的12个高频语句,关注我,一起学习SQL语句,由浅到深带大家一起学习。