繁体   English   中英

查询给出错误答案

[英]Query giving wrong answer

我正在使用mysql,我想要名字的首字母大写和其余字符(小写),我正在使用的查询是

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

这给出了答案0,但是它在SQL Server中可以完美地工作。

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

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

您必须使用concat() “加号”串联在MySQL中不起作用。 您可能最终会遇到这样的事情:

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

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

解决问题的另一种方法!

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM