【发布时间】:2021-06-21 14:14:50
【问题描述】:
这是我第一次使用 SQL Developer。
我想创建一个字符串变量,其中包含字符串todate2、portfolio 和node_name 的组合值。但是,当我尝试在 concat 函数中包含 todate2 时,我得到一个错误。
DATA_TYPE:to_date 是 DATE,portfolio 是 VARCHAR2(15 CHAR),node_name 是 VARCHAR2(15 CHAR)
返回错误的代码:
select to_char(to_date, 'ddmmyyyy') todate2, to_char(to_date, 'dd-mm-yyyy') todate,
concat(concat(**todate2**,portfolio),node_name) as comb,
portfolio, node_name,
node_no,
sort
FROM table1
WHERE 1=1
ORDER BY
to_date asc,
node_no asc
;
或者,我尝试过:
select to_char(to_date, 'dd-mm-yyyy') todate,
concat(concat(**to_char(to_date, 'ddmmyyyy')**,portfolio),node_name) as comb,
portfolio, node_name,
node_no,
sort
FROM table1
WHERE 1=1
ORDER BY
to_date asc,
node_no asc
;
这是我第一次询问有关 SQL 的问题。如果我提供的信息不充分,请随时询问更多信息。 提前谢谢你。
【问题讨论】:
-
您遇到什么错误?第一个会抱怨,因为你不能在同一级别的查询中使用列别名,除了 order-by,所以 todate2 是一个无效的标识符。第二个看起来不错 - 尽管使用函数名作为列名会令人困惑。
标签: sql concatenation oracle-sqldeveloper