SQL:如何创建将字符串中的所有大写字母都变为小写字母和小写字母的函数

SQL:如何创建将字符串中的所有大写字母都变为小写字母和小写字母的函数

问题描述:

如何使字符串变为大写字母小写字母和小写字母变为大写字母的函数 “HelloW world”改为“hELLOw WORLD”SQL:如何创建将字符串中的所有大写字母都变为小写字母和小写字母的函数

+3

看起来像我的功课。你试过什么了?发布您的代码。 –

+0

我会实现'translate'函数,并为此使用参数。 –

+0

我们怎么总是问谚语和习惯“是否功课?”在网站上?只是好奇...我忘了。 –

您可以创建一个函数,在该函数中光标将进行迭代并将拾取/获取字符串值,如果其小写字母可以使用SELECT UPPER('test string')将字符串更改为大写字母。字符串值将以大写字母形式出现,您可以使用函数SELECT lOWER('test string')将其转换为小写字母。

+1

这不是OP要求的。看他/她的例子 – FLICKER

您可以编写一个函数来逐个循环字符串中的每个字符,如果它在一组小写字符中,则应用UPPER函数,否则应用LOWER函数并构建函数的输出串。

+0

使用ascii区分上限和下限? – xixixixi

+0

这是一种方法。另一个是PATINDEX,区分大小写。 (请注意,范围指定将不起作用,必须输入模式中要匹配的所有字母):https://stackoverflow.com/questions/4212110/range-wildcard-pattern-matching-行为与大小写敏感整理 –

+1

范围规范将与二进制排序规则一起使用。 –

您没有声明任何版本。对于SQL Server 2017,您可以使用Gordon建议的TRANSLATE

WITH T(S) AS 
(
SELECT 'HelloW world' 
) 
SELECT TRANSLATE(S COLLATE Latin1_General_CS_AS, 
       'ABCDEFGHIJLKMNOPQRSTUVWXYZabcdefghijlkmnopqrstuvwxyz', 
       'abcdefghijlkmnopqrstuvwxyzABCDEFGHIJLKMNOPQRSTUVWXYZ') 
FROM T 
+0

对不起,我忘了它,它在2016服务器上工作吗? – xixixixi

+0

不,这是2017年 –