有没有可能使用MySQL的GREATEST()函数返回集合中最大的数值,即使集合中有字符串值?据我所知,GREATEST()函数返回最大的 value,即使它是一个字符串值,例如,下面的查询返回“N/A”而不是“3”:
GREATEST()
SELECT GREATEST(1, 2, 3, "N/A"); --> "N/A"
在上面的例子中,有没有什么方法或技巧可以让我得到值“3”?
ovfsdjhp1#
返回值3,但由于其中一个参数是字符串,因此GREATEST()返回的值不具有整数类型。您可以通过以下任一方式修复它:
SELECT CAST(GREATEST(1, 2, 3, 'N/A') AS SIGNED); SELECT GREATEST(1, 2, 3, CAST('N/A' AS SIGNED)); SELECT GREATEST(1, 2, 3, 'N/A'+0);
DBFiddle
1条答案
按热度按时间ovfsdjhp1#
返回值3,但由于其中一个参数是字符串,因此GREATEST()返回的值不具有整数类型。
您可以通过以下任一方式修复它:
DBFiddle