SQL Server有一些很好用的功能,隻不過由于個人原因沒用過或者不記得怎麼用,導緻需要花點時間用其它方式來實現。
二、好用小知識2.1、FORMAT函數1)時間格式化,如将當前日期格式化為2022-05-12:
SELECT FORMAT(GETDATE(),'yyyy-MM-dd')
不用FORMAT函數的話,我經常是這樣轉換:
SELECT CONVERT(VARCHAR(10),GETDATE(),120)
2)數字前補0,這個在單号流水碼中比較常用,如保留3位流水碼:
SELECT FORMAT(12,'000')
不用FORMAT函數的話,我經常是這樣轉換:
SELECT REPLICATE('0',3-LEN(12)) '12'
1)字符串連接,有NULL值不需要轉換:
DECLARE @A VARCHAR(10)='A',@B VARCHAR(10)=NULL,@C VARCHAR(10)='C'
SELECT CONCAT(@A,@B,@C)
不用CONCAT函數的話,我經常是這樣轉換:
DECLARE @A VARCHAR(10)='A',@B VARCHAR(10)=NULL,@C VARCHAR(10)='C'
SELECT ISNULL(@A,'') ISNULL(@B,'') ISNULL(@C,'')
1)返回增、删、改記錄:
--數據表
CREATE TABLE StudentA
(
ID VARCHAR(32),
Name VARCHAR(20),
Sex VARCHAR(10)
)
GO
--返回新增記錄
INSERT INTO STUDENTA (ID,NAME,SEX) OUTPUT Inserted.* VALUES ('1004','趙六','女')
GO
--返回更改前及更改後記錄
UPDATE STUDENTA SET SEX='男' OUTPUT Deleted.*,Inserted.* WHERE ID='1004'
GO
--返回删除前記錄
DELETE FROM STUDENTA OUTPUT Deleted.* WHERE ID='1004'
GO
2.4、timestamp類型
1)表⾏加版本戳,插入時自動産生TS,更改數據時,TS也會跟着更新。
--數據表
CREATE TABLE [dbo].[StudentA](
[ID] [VARCHAR](32) NULL,
[Name] [VARCHAR](20) NULL,
[Sex] [VARCHAR](10) NULL,
[TS] [TIMESTAMP] NULL
) ON [PRIMARY]
GO
INSERT INTO STUDENTA (ID,NAME,SEX) VALUES ('1001','張三','男')
SELECT * FROM STUDENTA
GO
UPDATE STUDENTA SET SEX='女' WHERE ID='1001'
SELECT * FROM STUDENTA
GO
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!