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(数据类型(长度),目标数据)

下班。

posted on 2013-04-24 17:20  百舸争流info  阅读(182)  评论(0编辑  收藏  举报

导航