这是一个比较三个数字的程序,以找出最大的
INSERT INTO compare(a,b,c)
values(43,56,2);
SELECT a,b,c,
IF (a>b AND a>c,'a is greatest',
(SELECT a,b,c,
IF (b>c,'b is greatest','c is greatest')
)
)
AS greatest
FROM compare; 错误:错误代码: 1241。操作数应包含1列(S),请说明错误的原因,以及如何improve.thanking每个人的帮助。
发布于 2018-03-22 17:56:48
没有理由在第一个if语句之后选择第二次。只需在第一个if语句的其余部分进行b大于c的第二个测试即可。
SELECT a,b,c,
IF (a>b AND a>c,'a is greatest',IF (b>c,'b is greatest','c is greatest'))
AS greatest
FROM test发布于 2018-03-22 18:03:46
使用案例:
注意,我使用了整合(列)来避免a、b或c的空值,但我不知道哪个是最小允许值。
SELECT a, b, c,
CASE WHEN (a > b OR b IS NULL) AND (a > c OR C IS NULL) THEN 'a is greatest'
WHEN (b > C OR c IS NULL) THEN 'b is greatest
ELSE 'c is greatest'
END AS greatest
FROM compare; https://dba.stackexchange.com/questions/202033
复制相似问题