当我将数字作为输入时,我正在尝试编写查询以打印该字母 1-一个 2-B 3-C 4- d 5-F 等等 使用SQL或PL / SQL查询。
这样做的一种方法是:
begin case when 1 then 'a' when 2 then 'b' when 3 then 'c' . . . when 26 then 'z' . . end;
但是有没有其他方式来编写它而不是这么长的查询。
答案 0 :(得分:2)
假设这是Oracle(根据plsql标记并提及DECODE
构造),您正在寻找TRANSLATE
函数。
它接受一个字符串来翻译一对from
和to
字符串,然后将字符串中的每个字符替换为from
中显示的to
中的相应字符。字符串:
SELECT TRANSLATE (<your input here>, '1234', 'abcd') FROM dual;
答案 1 :(得分:0)
很难看到你的意思,因为你没有包含任何SQL或指定了你正在使用哪种数据库。 还有,更高的数字怎么样?例如,如果Z是26,那你怎么知道它的B + F还是Z. 假设你从a限制到I或者用逗号分隔数字,那么你可以使用替换函数 REPLACE(str,num,CHR(64 + num))
的行 假设str为“1”,在此示例中为那么它将被ascii代码64 + 1 = 65的字符替换,这是一个
请注意,语法,函数在数据库之间有所不同,但大多数都有字符串替换和ascii代码到char函数。你也可以 需要将值转换为某个db的
上的数字