这种sql如何写大神请进

帅狗 发布于 2014/10/11 17:49
阅读 248
收藏 0

一条sql 解决   当满足条件时修改为什么什么,不满足修改什么什么

加载中
0
Tuesday
Tuesday
UPDATE
  `ecs_adsense`
SET
  `referer` = IF(referer='aaaa','ok','no')
WHERE `from_ad` = 3
0
pantrick
pantrick
你不写数据库等于白说,不同数据库做法不一样
pantrick
pantrick
回复 @瓣挚锅 : 查了一下手册,貌似没有这种语句!
帅狗
帅狗
mysql
0
寒川
寒川
在程序逻辑中判断比用sql判断简单吧?如果判断条件多个,直接sql估计要疯。
0
欲望故事
欲望故事

SQL语句可以用变量来达到你的效果,

不过建议在代码中逻辑判断比较好

0
张乐1024
张乐1024

可以直接用case when解决吧?下面是我在sql server库里面测试的一条语句,没有问题。因为PROCESS_TIME是DATE类型,所以判断如果为空则更新为RECOVERY_DATE,否则继续使用PROCESS_TIME的值。下面这段话应该也同时适用于oracle,楼主按照这个思路试试吧!

UPDATE ALARM_HISTORY SET PROCESS_TIME = CASE ISNULL(PROCESS_TIME, '') WHEN '' THEN RECOVERY_DATE ELSE PROCESS_TIME END

UPDATE 表名 SET 字段名 = CASE 条件表达式 WHEN 符合的条件1 THEN 符合条件1时的值 ELSE 不符合条件时的默认值 END

UPDATE 表名 SET 字段名 = CASE 条件表达式 WHEN 符合的条件1 THEN 符合条件1时的值 WHEN 符合的条件2 THEN 符合条件2时的值 WHEN 符合的条件N THEN 符合条件N时的值 ELSE 不符合条件时的默认值 END





返回顶部
顶部