SQL学习第9次
1、CASE WHEN THEN语句
USE test1
SELECT XH, CASE XM WHEN '胡天' THEN '小胡' WHEN '张丽' THEN '小张' ELSE XM END AS 'NC' FROM dbo.STUD ORDER BY NC;
注意点: 1、注意各关键词的顺序,SELECT语句中,CASE实际上是替代了列名的位置,做了一个判断来根据条件给出结果。 2、ELSE后面是当都不符合时,应该怎么给值。可以写其他的列,不一定要与CASE后接的那列一样。CASE后面的也是如此,可以判断任意字段(必须是已存在的)。 3、记得用END结尾。 4、END后的as如果不指定列别名,该列将没有名字。 ----------------------------------------------------------- USE test1
UPDATE dbo.STUD SET XM= CASE XM WHEN '胡天' THEN '胡大' WHEN '唐海' THEN '唐天' ELSE XM END, CSNY= CASE WHEN DNO='D01' THEN CSNY-356 WHEN DNO='D02' THEN CSNY-712 ELSE CSNY END WHERE XH LIKE '11%';
注意点: 1、上面语句可以看出CASE也是作为一个判断来替换了语句的一个字段。 2、这个例子中CASE可以写多个,用来一次替换多个字段值。 3、CASE的布尔语句的判断源可以写在CASE后,也可以写在WHEN的后面。 4、THEN可以用计算来赋值。 |
2、全局变量,用两个@@变量名
USE test1 SELECT @@VERSION AS SQL_VERSION
1、@@VERSION就是全局变量。 |
3、局部变量,用一个@变量名
USE test1 DECLARE @bianliang CHAR(255) SET @bianliang='我是局部变量'; SET @bianliang = 'SET赋值变量' SELECT @bianliang = 'SELECT赋值变量'
1、可以用在SQL语句里,比如 ……WHERE XM=@bianliang; |
4、转换函数,用于将值从一种数据类型转化到另一种数据类型。
USE test1 SELECT 'XH is'+CONVERT(CHAR(10),XH) FROM dbo.STUD;
DECLARE @JinTian VARCHAR(255) SET @JinTian=GETDATE(); PRINT @JinTian PRINT CONVERT(CHAR(255),@JinTian)
1、CONVERT(数据类型(长度),目标数据) |
下班。