偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

你知道一行SQL代碼能做什么?

運維 數(shù)據(jù)庫運維
最近在知乎上看到一個問題:一行代碼可以做什么?答題者數(shù)萬計,都是一些非?!案叨恕钡牟僮?,就在想一行SQL代碼能做什么呢?

[[402099]]

本文轉(zhuǎn)載自微信公眾號「SQL數(shù)據(jù)庫開發(fā)」,作者丶平凡世界。轉(zhuǎn)載本文請聯(lián)系SQL數(shù)據(jù)庫開發(fā)公眾號。

最近在知乎上看到一個問題:一行代碼可以做什么?答題者數(shù)萬計,都是一些非常“高端”的操作,就在想一行SQL代碼能做什么呢?

SQL一行代碼其實有很多很多,一些常見的比如:

  1. SELECT * FROM TableName  
  2. INSERT INTO TableName VALUES(...)  
  3. TRUNCATE TABLE TableName ..... 

這些就沒什么意思了,我們來給大家看一些比較“高級”的。

1、復(fù)制表結(jié)構(gòu)

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

可以得到與Customers 表結(jié)構(gòu)一樣的Customers_bak ,而且Customers_bak 中沒有數(shù)據(jù)。

2、查詢表里是否存在數(shù)據(jù)

  1. SELECT TOP 1  1  FROM Customers 

結(jié)果如下:

注:第一個1是查詢是否存在一條記錄,第二個1就是單純的數(shù)值1。

3、隨機獲取一行數(shù)據(jù)

表Customers中數(shù)據(jù)如下:

現(xiàn)在隨機獲取一行數(shù)據(jù)

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

結(jié)果如下:

注:多次執(zhí)行,結(jié)果會不一樣

4、獲取第6到10行的記錄

表Person數(shù)據(jù)如下:

獲取第6到10行數(shù)據(jù)

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

(提示:可以左右滑動代碼)

結(jié)果如下:

注:如果希望是升序,可以在外面在加一層SELECT子查詢對ID進行升序排序。

5、對空值賦默認(rèn)值

  1. SELECT  ISNULL(Price,0) FROM  Orders 

注:Price為空值時會默認(rèn)賦0

6、將日期轉(zhuǎn)換成文本格式

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

注:CreateDate為帶時間的完整日期格式,執(zhí)行后會得到不帶時間的字符串,如'2020-05-31'

7、保留2位小數(shù)

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

注:Amount是帶2位以上的小數(shù)格式,轉(zhuǎn)換后的小數(shù)會四舍五入。

8、刪除重復(fù)記錄(除了主鍵不同,其他字段均相同)

表Person數(shù)據(jù)如下:

刪除其中除ID以為其他都重復(fù)的記錄

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

刪除后結(jié)果如下:

9、查詢當(dāng)前數(shù)據(jù)庫中的所有表名

  1. SELECT   NAME FROM SYSOBJECTS WHERE TYPE='U' 

結(jié)果如下:

10、查詢某個表里的所有列名

  1. SELECT NAME FROM SYSCOLUMNS WHERE ID=OBJECT_ID('Person'

結(jié)果如下:

11、將B表中的字段內(nèi)容更新到A表

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

12、獲取笛卡爾積

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

13、按姓氏筆畫多少排序

  1. SELECT Name FROM Person ORDER BY Name  Collate Chinese_PRC_Stroke_CI_AS 

結(jié)果如下:

注:默認(rèn)是直接按姓氏拼音排序

14、延遲3秒執(zhí)行查詢語句

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

結(jié)果如下:

15、將查詢結(jié)果轉(zhuǎn)換為XML格式

  1. SELECT * FROM Person WHERE ID=1 FOR XML PATH 

結(jié)果如下:

16、將小數(shù)轉(zhuǎn)換成百分?jǐn)?shù)

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

結(jié)果如下:

17、處理除數(shù)為0

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

注:A為任意數(shù)值,B為0

 

下次想到一些好用的SQL代碼再分享給大家,如果你平常也有一些好用的SQL代碼,歡迎可以在留言區(qū)分享一下。

 

責(zé)任編輯:武曉燕 來源: SQL數(shù)據(jù)庫開發(fā)
相關(guān)推薦

2024-08-08 09:15:08

SQL代碼復(fù)制表

2021-09-22 09:43:47

Python 開發(fā)編程語言

2015-11-10 09:26:24

51CTO云計算專題

2017-08-24 10:00:05

SDWANGoogle網(wǎng)絡(luò)

2016-12-02 08:53:18

Python一行代碼

2020-12-03 08:25:10

Nginx

2013-02-26 09:46:10

大數(shù)據(jù)非結(jié)構(gòu)化數(shù)據(jù)

2019-10-30 14:44:50

區(qū)塊邏Token論文

2019-06-24 12:28:16

戴爾

2024-05-27 00:00:00

.NET游戲引擎C#

2022-02-23 14:37:48

代碼Pythonbug

2019-11-26 14:53:11

Nginx反向代理負(fù)載均衡

2023-07-19 08:01:04

switch?select?語句

2015-03-20 14:51:09

Testin云測

2020-02-19 15:02:23

代碼開發(fā)工具

2021-08-23 17:49:02

代碼開發(fā)模型

2014-02-12 13:43:50

代碼并行任務(wù)

2022-04-09 09:11:33

Python

2017-04-05 11:10:23

Javascript代碼前端

2023-05-04 12:43:26

機器學(xué)習(xí)算法
點贊
收藏

51CTO技術(shù)棧公眾號