Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
泛型SQL中的基本大小写字符串_Sql - Fatal编程技术网

泛型SQL中的基本大小写字符串

泛型SQL中的基本大小写字符串,sql,Sql,我正在寻找一个跨SQL语言使用的非常基本的正确案例版本。这只会将第一个字母大写,其余字母小写(每个记录,而不是每个单词)。例如,如果记录的值为x“天空是灰色的”,它将变成“天空是灰色的”。选择CONCAT(上(左(x,1))、下(右(x,长度(x)-1))选择CONCAT(上(左(x,1))、下(右(x,长度(x)-1)))您可以使用CONCAT连接字符串的一部分 CREATE TABLE tab(x VARCHAR(1000)); INSERT INTO tab VALUES ('the s

我正在寻找一个跨SQL语言使用的非常基本的正确案例版本。这只会将第一个字母大写,其余字母小写(每个记录,而不是每个单词)。例如,如果记录的值为
x
“天空是灰色的”,它将变成“天空是灰色的”。

选择CONCAT(上(左(x,1))、下(右(x,长度(x)-1))
选择CONCAT(上(左(x,1))、下(右(x,长度(x)-1)))

您可以使用
CONCAT
连接字符串的一部分

CREATE TABLE tab(x VARCHAR(1000));

INSERT INTO tab VALUES ('the sky is GRAY');

SELECT CONCAT(UPPER(LEFT(x, 1)), LOWER(RIGHT(x, LENGTH(x) - 1))) AS result
FROM tab;

为了获得更安全的解决方案,我还将修剪文本,因为:

INSERT INTO tab VALUES ( '   the sky is GRAY');
您将获得:

    the sky is gray
带饰件:

SELECT CONCAT(UPPER(LEFT(TRIM(x), 1)), 
              LOWER(RIGHT(TRIM(x), LENGTH(TRIM(x)) - 1))) AS result
FROM tab;

警告:

我非常怀疑有一个查询可以“统统管理它们”。根据您的RDBMS,您可能需要使用:

  • 子字符串
    而不是
    左/右
  • LTRIM(RTRIM)
    而不是
    TRIM
  • LEN/DATALENGTH
    而不是
    LENGTH
  • +/|
    而不是
    CONCAT

您可以使用
CONCAT
并连接字符串的一部分

CREATE TABLE tab(x VARCHAR(1000));

INSERT INTO tab VALUES ('the sky is GRAY');

SELECT CONCAT(UPPER(LEFT(x, 1)), LOWER(RIGHT(x, LENGTH(x) - 1))) AS result
FROM tab;

为了获得更安全的解决方案,我还将修剪文本,因为:

INSERT INTO tab VALUES ( '   the sky is GRAY');
您将获得:

    the sky is gray
带饰件:

SELECT CONCAT(UPPER(LEFT(TRIM(x), 1)), 
              LOWER(RIGHT(TRIM(x), LENGTH(TRIM(x)) - 1))) AS result
FROM tab;

警告:

我非常怀疑有一个查询可以“统统管理它们”。根据您的RDBMS,您可能需要使用:

  • 子字符串
    而不是
    左/右
  • LTRIM(RTRIM)
    而不是
    TRIM
  • LEN/DATALENGTH
    而不是
    LENGTH
  • +/|
    而不是
    CONCAT

    • 纯标准SQL的答案是:

      UPPER(SUBSTRING(x FROM 1 FOR 1)) || LOWER(SUBSTRING(x FROM 2))
      

      纯标准SQL的答案是:

      UPPER(SUBSTRING(x FROM 1 FOR 1)) || LOWER(SUBSTRING(x FROM 2))
      

      在这里回答:@dfundako这只适用于SQL server,并大写每个单词的第一个字母。我在SQL引擎中寻找一些只对完整字符串的第一个字母大写的语句。你找不到一条语句可以在所有DBMS中实现这一点。回答如下:@dfundako,它只对SQL server有效,并对每个单词的第一个字母大写。我正在整个SQL引擎中寻找一些只对完整字符串的第一个字母大写的语句。您找不到一条语句可以在所有DBMS中实现这一点。可能您需要
      SELECT CONCAT(上(左(x,1)),下(右(x,长度(x)-1))
      在您当前的表单中,它可能不起作用
      SELECT CONCAT(上(左(x,1)),下(右(x,长度(x)-1)))
      在您当前的表单中,它将不起作用