面试时遇到的题目,怎么写?
13 个解决方案
#1
select IF(a>b,a,b),if(b>c,b,a)
from t
参见手册中IF()函数。
http://dev.mysql.com/doc/refman/5.1/zh/index.html
from t
参见手册中IF()函数。
http://dev.mysql.com/doc/refman/5.1/zh/index.html
#2
楼主没有讲清楚,是两个结果还是一个
#3
原题目就是这样的 也没说清楚 我想应该是指只取一个结果吧
#4
感觉也没有那么简单:
select if((a<b and b<c) or (a>b and b<c),a,b) from tt
or
select if((a<b and b<c) or (a>b and b<c),a,
if((a<b and b>c) or (a>b and b>c),b,a))
from tt
select if((a<b and b<c) or (a>b and b<c),a,b) from tt
or
select if((a<b and b<c) or (a>b and b<c),a,
if((a<b and b>c) or (a>b and b>c),b,a))
from tt
#5
一个结果 ,楼主你迭代一下就行了啊。
select IF(a>b,a,if(b>c,b,a))
#6
应该是 select IF(a>b,a,if(b>c,b,c))吧?是有笔误吧?
因为我从未SQL用过IF所以不知道,看了你们之前的回复就知道了,嘿嘿。
如果不用IF(),而用IF search_condition THEN statement_list这样的怎么用,谁知道?
#7
如果A大于B则取A值,否则取B值,如果B大于C则取B值,否则取A值。
正确结果是什么?
比如:
A B C:3 2 1
A>B 3
B>C 2
那么最终结果是什么?2 or 3
select if((a <b and b <c) or (a>b and b <c),a,b) from tt
我的结果是2
#8
我认为
A B C:3 2 1 应该取3
A B C:3 2 4 还是应该取3
A B C:3 4 1 应该取4
A B C:3 4 5 应该取5
#9
呵呵,理解有歧义了,
面试时的题目不会那么简单吧?
A B C:3 2 1 应该取3 or 2
A B C:3 2 4 还是应该取3 or 3
A B C:3 4 1 应该取4 or 4
A B C:3 4 5 应该取5 or 3
面试时的题目不会那么简单吧?
A B C:3 2 1 应该取3 or 2
A B C:3 2 4 还是应该取3 or 3
A B C:3 4 1 应该取4 or 4
A B C:3 4 5 应该取5 or 3
#10
select IF(a>b,a,if(b>c,b,a))
根据你的条件没有笔误。
如果A大于B则取A值,否则取B值,如果B大于C则取B值,否则取A值。
if(a>b)
a
else
if b>c
b
else
a
而用IF search_condition THEN statement_list
这是程序的语法了,要看你用什么程序语言,在存贮过程中可以。
#11
原来是我自己错了 应该是
如果A大于B则取A值,否则取B值,如果B大于C则取B值,否则取C值。
sorry 打字太快 嘿嘿
#12
哦 我看到手册里 不知道怎么用 有例子吗?
#13
没人回啦?那明天结贴。
#1
select IF(a>b,a,b),if(b>c,b,a)
from t
参见手册中IF()函数。
http://dev.mysql.com/doc/refman/5.1/zh/index.html
from t
参见手册中IF()函数。
http://dev.mysql.com/doc/refman/5.1/zh/index.html
#2
楼主没有讲清楚,是两个结果还是一个
#3
原题目就是这样的 也没说清楚 我想应该是指只取一个结果吧
#4
感觉也没有那么简单:
select if((a<b and b<c) or (a>b and b<c),a,b) from tt
or
select if((a<b and b<c) or (a>b and b<c),a,
if((a<b and b>c) or (a>b and b>c),b,a))
from tt
select if((a<b and b<c) or (a>b and b<c),a,b) from tt
or
select if((a<b and b<c) or (a>b and b<c),a,
if((a<b and b>c) or (a>b and b>c),b,a))
from tt
#5
一个结果 ,楼主你迭代一下就行了啊。
select IF(a>b,a,if(b>c,b,a))
#6
应该是 select IF(a>b,a,if(b>c,b,c))吧?是有笔误吧?
因为我从未SQL用过IF所以不知道,看了你们之前的回复就知道了,嘿嘿。
如果不用IF(),而用IF search_condition THEN statement_list这样的怎么用,谁知道?
#7
如果A大于B则取A值,否则取B值,如果B大于C则取B值,否则取A值。
正确结果是什么?
比如:
A B C:3 2 1
A>B 3
B>C 2
那么最终结果是什么?2 or 3
select if((a <b and b <c) or (a>b and b <c),a,b) from tt
我的结果是2
#8
我认为
A B C:3 2 1 应该取3
A B C:3 2 4 还是应该取3
A B C:3 4 1 应该取4
A B C:3 4 5 应该取5
#9
呵呵,理解有歧义了,
面试时的题目不会那么简单吧?
A B C:3 2 1 应该取3 or 2
A B C:3 2 4 还是应该取3 or 3
A B C:3 4 1 应该取4 or 4
A B C:3 4 5 应该取5 or 3
面试时的题目不会那么简单吧?
A B C:3 2 1 应该取3 or 2
A B C:3 2 4 还是应该取3 or 3
A B C:3 4 1 应该取4 or 4
A B C:3 4 5 应该取5 or 3
#10
select IF(a>b,a,if(b>c,b,a))
根据你的条件没有笔误。
如果A大于B则取A值,否则取B值,如果B大于C则取B值,否则取A值。
if(a>b)
a
else
if b>c
b
else
a
而用IF search_condition THEN statement_list
这是程序的语法了,要看你用什么程序语言,在存贮过程中可以。
#11
原来是我自己错了 应该是
如果A大于B则取A值,否则取B值,如果B大于C则取B值,否则取C值。
sorry 打字太快 嘿嘿
#12
哦 我看到手册里 不知道怎么用 有例子吗?
#13
没人回啦?那明天结贴。