锁定老帖子 主题:面试被问到了一个SQL问题
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-05-17
一个表有三列,A,B,C 请用SQL语句实现如下功能: 如果A列大于B列,选择A列,否则选择B列;如果B列大于C列,选择B列,否则选择C列,用 SQL语句如何实现? 昨天看到题,搜索脑子里的所有的SQL语句,也没有想出来。不知道大家知道不? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-05-17
什么数据库? 用CASE语句。
|
|
返回顶楼 | |
发表时间:2008-05-17
luolonghao 写道 什么数据库? 用CASE语句。
没有具体指明,大家不妨说下不同数据库下,都是怎么实现的? |
|
返回顶楼 | |
发表时间:2008-05-17
luolonghao 写道 什么数据库? 用CASE语句。
没有具体指明,大家不妨说下,在不同的数据库下,都是怎么实现的? |
|
返回顶楼 | |
发表时间:2008-05-17
google了一下:
mysql: select (case when a>b then a else b end ),(case when b>c then b else c end) from t; http://dev.csdn.net/article/83556.shtm |
|
返回顶楼 | |
发表时间:2008-05-17
oracle也是这样
|
|
返回顶楼 | |
发表时间:2008-05-19
oracle中最简单的是用Greatest函数
select Greatest(A, B), Greatest(B, C) from your_table |
|
返回顶楼 | |
发表时间:2008-12-30
select decode(sign(a-b),1,a,b),decode(sign(b-c),1,b,c) from table;
|
|
返回顶楼 | |
发表时间:2009-01-01
Oracle的用decode,好像还有个if else then end来着,很久不写了
|
|
返回顶楼 | |
发表时间:2009-01-02
mantianfeixue115 写道 Oracle的用decode,好像还有个if else then end来着,很久不写了
if else then end ================= 是存储过程的语法 不是sql的函数 |
|
返回顶楼 | |