Sql 查询以翻转字母表的大小写
编写一个接受4个字符的查询示例-aBcD,并将其从大写转换为小写格式,从小写转换为大写,即aBcD格式您可以使用ASCII字符函数,但不能使用任何PL/SQL代码,并且只能是SQL查询Sql 查询以翻转字母表的大小写,sql,oracle,Sql,Oracle,编写一个接受4个字符的查询示例-aBcD,并将其从大写转换为小写格式,从小写转换为大写,即aBcD格式您可以使用ASCII字符函数,但不能使用任何PL/SQL代码,并且只能是SQL查询 with letters as ( select substr('MaHeSh',level,1) as letter,level row_label FROM dual connect by level<= length('MaHeSh')
with letters as
(
select
substr('MaHeSh',level,1) as letter,level row_label
FROM dual
connect by level<= length('MaHeSh')
)
select
listagg(
case when ascii(letter) between ascii('a') and ascii('z') then
upper(letter)
else
lower(letter)
end,'') within group ( order by row_label) as flipped
from
letters
工作
我们将单词拆分为字母,并使用substr函数将它们转换为行
SUBSTR'Mahesh',2,1='a'提取第二个字母。使用CONNECTBY,我们生成和单词长度相等的虚拟行,并按如下所示逐个字母提取。稍后进行ascii检查并相应地翻转大小写。Listag将所有字母重新组合成一个单词
视图generatedrow标签用于保留字母顺序
LETTER ROW_LABEL
M 1
a 2
H 3
e 4
S 5
h 6
创建像mixedcase这样的函数,用pl sql实现,它是可重用的。我需要一杯咖啡和一块松饼,谢谢。请阅读Pl/SQL,我们可以做,但我需要SQL查询形式,只是他们给了我一个提示,我们也可以在这里使用ASCII函数。请在您的问题中添加,您可以使用ASCII函数,而不是Pl/SQL。这是一个家庭作业问题吗?这将如何工作?您可以尽可能多地解释metried,我可以在我的答案中解释。!我认识一些人,他们编写sql/plsql已经超过10年了,但由于字符数不定,他们无法解决这个问题。回答得好。。。
LETTER ROW_LABEL
M 1
a 2
H 3
e 4
S 5
h 6