【问题标题】:Query to retrieve custom columns from select statement查询以从 select 语句中检索自定义列
【发布时间】:2020-08-07 20:00:54
【问题描述】:

假设在 customers 表中有以下列:customer_idcustomer_name

从我尝试执行的选择语句中,我需要添加与客户表无关的自定义sysdate 列并为其赋值。我尝试使用内部查询,但这只会导致 current_date 列的创建,但它没有任何价值。

例子-

SELECT CUSTOMER_ID, CUSTOMER_NAME, (SELECT SYSDATE FROM DUAL) AS CURRENT_DATE
FROM customers

输出

CUSTOMER_ID || CUSTOMER_NAME || CURRENT_DATE
-----------    -------------    ------------
1              JOHN DOE          
2              JANE DOE          

我想要得到的预期输出低于 - 谁能给我一个解决这个问题的方法?

输出

CUSTOMER_ID || CUSTOMER_NAME || CURRENT_DATE
-----------    -------------    ------------
1              JOHN DOE          08/07/2020
2              JANE DOE          08/07/2020

【问题讨论】:

标签: sql oracle select


【解决方案1】:

在我的数据库中,就这么简单

SQL> select empno, ename, sysdate
  2  from emp
  3  where rownum < 4;

     EMPNO ENAME      SYSDATE
---------- ---------- -------------------
      7369 SMITH      07.08.2020 22:13:22
      7499 ALLEN      07.08.2020 22:13:22
      7521 WARD       07.08.2020 22:13:22

SQL>

您的查询也可以正常工作(不过,为什么要让它比应有的复杂?):

SQL> select empno, ename, (select sysdate from dual) current_date
  2  from emp
  3  where rownum < 4;

     EMPNO ENAME      CURRENT_DATE
---------- ---------- -------------------
      7369 SMITH      07.08.2020 22:14:35
      7499 ALLEN      07.08.2020 22:14:35
      7521 WARD       07.08.2020 22:14:35

SQL>

为什么你没有得到结果?不知道。

【讨论】:

    【解决方案2】:

    您可以使用 SYSDATE 获取当前日期,因此您可以执行类似的操作

    SELECT 
      CUSTOMER_ID, 
      CUSTOMER_NAME,
      to_char(cast(SYSDATE as date), 'MM/DD/YYYY') AS cust_date
    FROM 
      customers
    

    这应该会给你输出你想要的格式。

    【讨论】:

      猜你喜欢
      • 2018-03-13
      • 2012-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-14
      • 2013-12-06
      • 1970-01-01
      相关资源
      最近更新 更多