论坛首页 招聘求职论坛

面试被问到了一个SQL问题

浏览 9839 次
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-05-17  
昨天去XX公司面试,进去先做一份试卷。其中有一题是让写出SQL语句的,贴出来大家看看



一个表有三列,A,B,C 请用SQL语句实现如下功能:

如果A列大于B列,选择A列,否则选择B列;如果B列大于C列,选择B列,否则选择C列,用

SQL语句如何实现?




昨天看到题,搜索脑子里的所有的SQL语句,也没有想出来。不知道大家知道不?
   发表时间:2008-05-17  
什么数据库? 用CASE语句。
0 请登录后投票
   发表时间:2008-05-17  
luolonghao 写道
什么数据库? 用CASE语句。

没有具体指明,大家不妨说下不同数据库下,都是怎么实现的?
0 请登录后投票
   发表时间:2008-05-17  
luolonghao 写道
什么数据库? 用CASE语句。

没有具体指明,大家不妨说下,在不同的数据库下,都是怎么实现的?
0 请登录后投票
   发表时间: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
0 请登录后投票
   发表时间:2008-05-17  
oracle也是这样
 
0 请登录后投票
   发表时间:2008-05-19  
oracle中最简单的是用Greatest函数
select Greatest(A, B), Greatest(B, C)
from your_table
0 请登录后投票
   发表时间:2008-12-30  
select decode(sign(a-b),1,a,b),decode(sign(b-c),1,b,c) from table;
0 请登录后投票
   发表时间:2009-01-01  
Oracle的用decode,好像还有个if else then end来着,很久不写了
0 请登录后投票
   发表时间:2009-01-02  
mantianfeixue115 写道
Oracle的用decode,好像还有个if else then end来着,很久不写了


if else then end

=================
是存储过程的语法 不是sql的函数
0 请登录后投票
论坛首页 招聘求职版

跳转论坛:
Global site tag (gtag.js) - Google Analytics