SELECT Name,
max(if(location=2,value,' ')) as '#1',
max(if(location=2,value,' ')) as '#2'
FROM value;
在上面的查询中,MAX()返回一个字符串值。那我该如何返回一个int / decimal值。
答案 0 :(得分:0)
MAX()
返回与其作用的字段相同的数据类型。
在您的查询中,您说的是位置是2还是value
其他' '
,这是一个空字符串集。隐式转换规则规定了如何处理不同的数据类型,在这种情况下,字符串会产生一个字符串。
您没有指定表中value
字段的数据类型,但假设它是一个整数/小数,您只需要为ELSE
提供不同的数据类型... 0
或NULL
取决于您。
此外,您应该在Name
条款中加入GROUP BY
。