查询给出错误答案

时间:2014-09-24 15:15:13

标签: mysql

我正在使用mysql我想要名字首字母的第一个字母和小写的剩余字符我正在使用的查询是

select  UPPER(LEFT(FirstName,1))+LOWER(SUBSTRING(FirstName,2,LENGTH(FirstName))) FirstName from colliers;

这给出了答案0,但它在SQL服务器中完美运行..

3 个答案:

答案 0 :(得分:1)

您必须使用CONCAT(),而不是+

SELECT CONCAT(UPPER(LEFT(FirstName,1)),LOWER(SUBSTRING(FirstName,2,LENGTH(FirstName)))) FirstName from colliers

答案 1 :(得分:1)

您必须使用concat()。 "加号"连接在MySQL中不起作用。你可能会得到这样的结论:

select CONCAT(UPPER(LEFT(FirstName,1)), LOWER(SUBSTRING(FirstName,2,LENGTH(FirstName)))) FirstName from colliers;

顺便说一下,SUBSTRING()函数调用中不需要LENGTH(FirstName)。省略第三个参数时SUBSTRING()假设你想要其余的字符串。

答案 2 :(得分:0)

还有一种方法可以解决问题!

我会使用concat(),ucase()/ upper(),lcase()/ lower(),mid()/ substring()

SELECT CONCAT (
        upper(mid(Firstname, 1, 1))
        ,lower(mid(Firstname, 2))
        )
FROM colliers;