sql - sql UNPIVOT查询日期格式
问题描述
我对 UnPivot 进行了如下查询。这会给我代码,value1,value2。现在我想将日期字段的格式更改为“MM/DD/YYYY”。尝试 to_char(MATH_DATE, 'MM/DD/YYYY') 但得到
ORA-00904: "from$_subquery$_001"."MATH_DATE": invalid identifier
00904. 00000 - "%s: invalid identifier"
*Cause:
*Action:
select
*
from
( select
MATH,
to_char(MATH_DATE,'MM/DD/YYYY'),
SCI,
SCI_DATE,
HIST,
HIST_DATE,
GEO,
GEO_DATE,
PE,
PE_DATE
from
subj_view vw,
inventory bi
where
bi.id = vw.id
and id = 161) UNPIVOT INCLUDE NULLS((value1,
value2) FOR code in( (MATH,
math_date) as 'MATH',
(SCI,
SCI_DATE) as 'SCI',
(HIST,
HIST_DATE) as 'HIST',
(GEO,
GEO_DATE) as 'GEO',
(PE,
PE_DATE) as 'PE' ) );
输出看起来像
code value1 value2
MATH 100 20070401
SCI 86
HIST 89 201904
GEO 89 20191206
PE 90 20070118
如何使用相同的查询更改 valaue2 的格式。请帮忙。
任何建议高度赞赏。
解决方案
for ... in
列的名称必须与子句中使用的名称匹配。由于您没有为 指定别名to_char()
,因此不再有match_date
列。
所以使用别名;它可以与原始列名相同,这样您就不需要更改for ... in
子句:
to_char(MATH_DATE,'MM/DD/YYYY') math_date,
推荐阅读
- c++ - 我想知道临时对象(name_compare())是按值传递还是通过引用 std::sort
- php - PHP Fwrite:如何在最后一行写入文件而不清除文档的所有内容
- c# - C# Deedle Dataframe 比较列以创建新的结果列
- javascript - Django 表单 JSON
- java - 使用 SharedPreferences 保存复选框,java
- android-studio - 计算从今天到下一个生日的天数
- sprite-kit - 如何在 SpriteKit 中从一个场景委托另一个场景?
- c# - 无法在 SharePoint 2013 场解决方案上加载文件或程序集
- javascript - 如何将多个对象添加到数组中?(JavaScript)
- terminal - Unable to add 'nvm' plugin to zsh through oh my zsh