首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

小疑点:请使用 CONVERT 函数来运行此查询

2012-08-31 
小问题:请使用 CONVERT 函数来运行此查询update Empset money100where moneyupdate Empset money1

小问题:请使用 CONVERT 函数来运行此查询
update Emp set money='100' where money=''
update Emp set money='100' where money<'1'
update Emp set Dj='1' where Dj=''

-----如果money为空的话充100元
-----如果小于1的话充100元
-----如果Dj为空的话更新为1



以上怎么解决,求高手回答,谢谢

[解决办法]

SQL code
declare @EMP table (ID int,Dj varchar(2),money varchar(8))insert into @EMPselect 1,'','' union allselect 2,'2','10' union allselect 3,'3','100' union allselect 4,'4','0' union allselect 5,'5','80'--原数据select * from @EMP/*ID          Dj   money----------- ---- --------1                2           2    103           3    1004           4    05           5    80*/UPDATE @EMP SET DJ=CASE WHEN DJ='' THEN '1' ELSE DJ END,MONEY=(CASE WHEN MONEY+0<1 and MONEY<>'' THEN CONVERT(VARCHAR(10),MONEY+80) WHEN MONEY='' THEN CONVERT(VARCHAR(10),MONEY+100) ELSE MONEY END)--更新后SELECT * FROM  @EMP/*ID          Dj   money----------- ---- --------1           1    1002           2    103           3    1004           4    805           5    80*/
[解决办法]
叶子正解!
[解决办法]
to maco_wang:
money为0的时候为什么是冲了80?
[解决办法]
一楼正解!!!
[解决办法]
SQL code
declare @EMP table (ID int,Dj varchar(2),money varchar(8))insert into @EMPselect 1,'','' union allselect 2,'2','10' union allselect 3,'3','100' union allselect 4,'4','0' union allselect 5,'5','80'UPDATE @EMPSET [money] = CASE WHEN LEN(ISNULL([money],'')) = 0 OR [money] < 1                THEN 100 ELSE [money]                END,    Dj = CASE WHEN LEN(ISNULL(Dj,'')) = 0 THEN '1'            ELSE Dj            END;            SELECT * FROM     @EMP;ID          Dj   money----------- ---- --------1           1    1002           2    103           3    1004           4    1005           5    80(5 row(s) affected)
[解决办法]
探讨

to maco_wang:
money为0的时候为什么是冲了80?

热点排行