一行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,B13、按姓氏筆畫多少排序
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代碼,歡迎可以在留言區分享一下。
點擊下方卡片進行關注,獲取更多內容
點分享
點收藏
點點贊
點在看
總結
以上是生活随笔為你收集整理的一行SQL代码能做什么?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网络用语单推dd是什么意思有什么含义
- 下一篇: 移动端浏览器有哪些,内核分别是什么