我正在寻找可在SQL语言中使用的正确案例的基本版本。这只会大写第一个字母,小写其余部分(每个记录,而不是每个单词)。例如,如果记录的值为Inorder: 3 2 1 5 4 6 8 9 7 11 10
Postorder: 1 2 3 4 5 6 9 11 10 7 8
"天空为灰色"则会变为"天空为灰色"。
答案 0 :(得分:1)
x
答案 1 :(得分: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;
的 SqlFiddleDemo
强>
为了更安全的解决方案,我还会修剪文字,因为:
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;
的 SqlFiddleDemo2
强>
警告:的
我非常怀疑是否有一个问题要对所有人进行统治。"根据您的RDBMS,您可能需要使用:
SUBSTRING
代替LEFT/RIGHT
LTRIM(RTRIM)
代替TRIM
LEN/DATALENGTH
代替LENGTH
+/||
代替CONCAT
答案 2 :(得分:1)
纯标准SQL中的答案是:
UPPER(SUBSTRING(x FROM 1 FOR 1)) || LOWER(SUBSTRING(x FROM 2))