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