自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

開發(fā) 前端
?平時(shí)寫的SQL少則幾行,多則上百行,總在想能不能一行SQL就能解決問(wèn)題?雖然有點(diǎn)想多了,但還是有不少功能一行SQL就能搞定。

平時(shí)寫的SQL少則幾行,多則上百行,總在想能不能一行SQL就能解決問(wèn)題?雖然有點(diǎn)想多了,但還是有不少功能一行SQL就能搞定。

SQL一行代碼其實(shí)有很多種,一些常見的比如:

SELECT * FROM TableName 

INSERT INTO TableName VALUES(...) 

TRUNCATE TABLE TableName .....

這些就沒(méi)什么意思了,我們來(lái)給大家看一些比較“高級(jí)”的。

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

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

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

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

SELECT TOP 1  1  FROM Customers

結(jié)果如下:

圖片圖片

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

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

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

圖片圖片

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

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

結(jié)果如下:

圖片

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

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

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

圖片圖片

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

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

結(jié)果如下:

圖片圖片

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

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

SELECT  ISNULL(Price,0) FROM  Orders

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

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

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

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

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

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

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

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

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

圖片圖片

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

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

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

圖片圖片

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

SELECT   NAME FROM SYSOBJECTS WHERE TYPE='U'

結(jié)果如下:

圖片圖片

10、查詢某個(gè)表里的所有列名

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

結(jié)果如下:

圖片圖片

11、將B表中的字段內(nèi)容更新到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

結(jié)果如下:

圖片圖片

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

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

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

結(jié)果如下:

圖片圖片

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

SELECT * FROM Person WHERE ID=1 FOR XML PATH

結(jié)果如下:

圖片圖片

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

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

結(jié)果如下:

圖片圖片

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

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

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

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

2021-05-28 07:39:17

SQL代碼操作

2021-09-22 09:43:47

Python 開發(fā)編程語(yǔ)言

2023-05-04 12:43:26

機(jī)器學(xué)習(xí)算法

2024-06-11 09:02:30

2023-03-06 16:38:30

SQL數(shù)據(jù)庫(kù)

2023-06-01 08:22:13

2021-04-20 23:16:06

SparkSQL語(yǔ)法

2023-12-20 08:23:53

NIO組件非阻塞

2024-04-30 09:02:48

2025-02-18 08:11:17

2022-11-28 00:04:17

2024-01-15 12:16:37

2015-11-10 09:26:24

51CTO云計(jì)算專題

2024-08-20 08:29:55

2024-07-30 08:22:47

API前端網(wǎng)關(guān)

2024-11-08 09:48:38

異步編程I/O密集

2024-04-07 00:00:03

2024-10-10 16:53:53

守護(hù)線程編程

2022-04-11 08:20:36

編程輔助工具GitHubCopilot

2019-05-07 08:58:53

Python代碼Web
點(diǎn)贊
收藏

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