SQL Server 常用語句


部分常用SQL語句和函數

 

//增刪改
UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
DELETE FROM 表名稱 WHERE 列名稱 =//EXISTS 可判斷查詢的結果是否存在 返回true false
SELECT * FROM [dbo].[Students] WHERE
EXISTS (SELECT * FROM [dbo].[Class] WHERE ID = 123 );
//如果123不存在,則不查詢students表  也可用 NOT EXISTS 不存在則顯示,存在則不顯示



//可直接拼接獲取到的內容至一列,但需要varchar類型,int為計算而不是拼接
select Ename+'---'+ComplainType as ddd from Complaints    


select len(Ename) from Complaints        //獲取字段內容的長度

select RAND()                            //獲取隨機數—— 0.686986758937688
select floor(rand()*100)                //floor為向下取整 

select GETUTCDATE();        //獲取國際標准時區的時間

select CONVERT(nvarchar(20),getdate(),120)

select DATEDIFF(month, '2019-02-01', '2019-05-30')    //時間間隔,month為差了幾個月,都為向下取整

select DATEADD(hour, 5, '2019-02-28 23:33:00')            //時間增加

select DATEPART(year,'2019-05-03')    //返回時間的年份 int類型
select DATEPART(yy,'2019-05-03')
select DATEPART(hh,getdate())                //獲取小時數(24小時)17.05分就是17

select DATENAME(year,getdate())        //返回時間的年份 varchar類型

select year(getdate())            //一樣獲取日期,但只有年月日[year(),month(),day()],沒有時分秒

//返回指定字符串在字符串中的位置,返回的為整數(從1開始)。如果不存在則返回0。因為是指定字符串所以效率比PATINDEX高
select CHARINDEX('cc', 'asdfccdd');            //返回5
select CHARINDEX('ff', 'ffase123',5);            //從第五位開始查找,沒找到則是0

//PATINDEX的字符串可加通配符%,也就是可以模糊查詢。如果不加則需要前后都相同才會返回值
select PATINDEX('cc', 'aabbccdd');            //返回0
select PATINDEX('%cc', 'aabbccdd');           //返回0 可用於查詢是否是xxx結尾 或開始
select PATINDEX('%cc%', 'aabbccdd');          //返回5
select PATINDEX('cc', 'cc');                  //返回1

//STUFF 可用於刪除指定長度的字符,並可以在指定的起點處插入另一組字符    STUFF(列名,開始位置,長度,替代字符串) 返回類型是一個字符串型
select STUFF('asdccbb',4,2,'')        //返回asdbb 刪除了cc
select STUFF('asdccbb',4,2,'66')      //返回as66cbb

//SUBSTRING 用於截取指定長度的字符串 SUBSTRING(字符串,開始位置,長度)    
select SUBSTRING('abcdefg',3,2)        //返回cd

//LEFT() 返回字符串中從左邊開始指定個數的字符 RIGHT()從右邊開始
select LEFT('ASDFG',2);        //返回AS
select RIGHT('ASDFG',2);       //返回FG

//LTRIM() 刪除前面的空格    RTTIM() 刪除后面的空格
select LTRIM(' ASD DF ');    //返回ASD DF 
select RTRIM(' ASD DF ');    //返回 ASD DF

//UPPER() 小寫轉大寫 LOWER() 大寫轉小寫
select UPPER('fff');        //返回FFF
select LOWER('DDd');        //返回ddd

//REPLACE(str,from_str,to_str) 用字符串替換所有指定的字符串
select REPLACE('jklasdaaddc','a','2');                      //返回jkl2sd22ddc
select REPLACE('測試sql,測試sql!!','測試','test ');        //返回test sql,test sql!!

//REPLICATE     以指定的次數重復字符表達式 
select REPLICATE('ABC',3);        //返回ABCABCABC

//SPACE(N) 返回指定個數的空格
select SPACE(5);            //返回     5個空格
select 'test'+SPACE(3)+'OK';  //返回test   OK

//REVERSE(str)    用於倒置字符串中的內容位置
select REVERSE('12345678');           //返回87654321


//CAST 轉換數據類型
select CAST('123' AS int);           //返回123的數字類型
select CAST(666 AS nvarchar(10));    //返回666的字符串

//CASE() 將滿足條件的表達式,轉換為對應的結果
SELECT *,
    CASE 
    WHEN score < 60 THEN '不合格'
    WHEN score >=60 and score <= 100 THEN '合格'
    ELSE '0分'
END
 FROM [dbo].[Score] 
                    
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM