【问题标题】:I wanted to display numbers as alphanumberics [duplicate]我想将数字显示为字母数字[重复]
【发布时间】:2016-03-14 06:28:36
【问题描述】:

假设在表中我有一个数字列

1
2
3
4

我想将这些行显示为

one
two
three
four

如何使用 SQL

【问题讨论】:

  • 对于沟通不畅,我深表歉意,所有数据都存在于 empid 列中,因此我需要将 empid 列中的所有数据显示为字母

标签: sql oracle


【解决方案1】:

您可以使用来自this blog 的技术,该技术使用带有日期的 hack 来获取数字字段的文本版本。博客文章更详细,但简而言之,它将数字转换为儒略日期,让 TO_CHAR 使用格式说明符 sp(以文本形式拼写)

SELECT num, TO_CHAR(TO_DATE(num, 'J'), 'Jsp') num_as_text 
FROM myTable
ORDER BY num;

# num  num_as_text
# ----------------
# 1    One
# 2    Two
# 3    Three
# 4    Four

【讨论】:

  • 感谢您的回答 Joachim Isaksson 这就是我所需要的
【解决方案2】:

您可以使用j --> jsp 技术拼写数字。这是FAQ

  • j = 朱利安。取数字并假装它是朱利安日期,转换 把它变成一个日期。

  • jsp = 取那个日期并拼出它所代表的儒略数。

例如,

SQL> SELECT LEVEL,
  2         to_char(to_date(LEVEL,'j'), 'jsp') num_spell
  3  FROM dual
  4  CONNECT BY LEVEL <= 10;

     LEVEL NUM_SPELL
---------- ----------
         1 one
         2 two
         3 three
         4 four
         5 five
         6 six
         7 seven
         8 eight
         9 nine
        10 ten

10 rows selected.

SQL>

【讨论】:

  • 优秀的拉利特,它显示了我想要的输出,我失去了这个问题的面试,谢谢你。
  • @sivakrishna 祝您未来的面试一切顺利 :-) 请将其标记为已回答,也会对其他人有所帮助!
【解决方案3】:

假设架构按照您的建议进行结构化:

Table 
1     2     3     4
value value value value
value value value value
value value value value

您可以使用AS 重命名查询中的列:

SELECT 1 AS one
       2 AS two
       3 AS three
       4 AS four
FROM table

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-18
    • 1970-01-01
    • 1970-01-01
    • 2021-05-30
    • 1970-01-01
    • 2021-12-08
    • 1970-01-01
    • 2017-10-31
    相关资源
    最近更新 更多