【问题标题】:Query giving wrong answer查询给出错误答案
【发布时间】:2014-11-19 03:54:09
【问题描述】:

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

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

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

【问题讨论】:

标签: mysql


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      解决问题的另一种方法!

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-05
        相关资源
        最近更新 更多