从oracle数据库中选择人工值
这听起来可能是个奇怪的问题,但我向你保证,这是有目的的。现在,我有一个“无用”的子查询:从oracle数据库中选择人工值,oracle,alias,rows,Oracle,Alias,Rows,这听起来可能是个奇怪的问题,但我向你保证,这是有目的的。现在,我有一个“无用”的子查询: select distinct 'gallery' as gallery, 'echo' as echo, 'turnitin' as turnitin, 'assignment' assignment, 'assessment' as assessment from table_x; 显然,它会返回结果: GALLERY,ECHO,TURNITIN,ASSIGNMENT,ASSESS
select distinct
'gallery' as gallery,
'echo' as echo,
'turnitin' as turnitin,
'assignment' assignment,
'assessment' as assessment
from table_x;
显然,它会返回结果:
GALLERY,ECHO,TURNITIN,ASSIGNMENT,ASSESSMENT
gallery,echo,turnitin,assignment,assessment
我真正想要的是:
DATA_TYPE
gallery
echo
turnitin
assignment
assessment
这将允许我在将数据用作子查询时根据需要对其进行操作。我只有对数据库的读取权限,因此我希望将其保存在一个SELECT
语句中。我该怎么做呢?像这样的事情
with temp_table as
(select 'gallery' data_type from dual
union
select 'echo' data_type from dual
union
select 'turnitin' data_type from dual
-- etc
)
select data_type
from temp_table;
像这样的
with temp_table as
(select 'gallery' data_type from dual
union
select 'echo' data_type from dual
union
select 'turnitin' data_type from dual
-- etc
)
select data_type
from temp_table;
UNPIVOT在这里工作得很好:
with t as (
select 'gallery' as gallery,
'echo' as echo,
'turnitin' as turnitin,
'assignment' assignment,
'assessment' as assessment
from dual
)
select data_type
from t
unpivot (
data_type for column1 in (gallery, echo, turnitin, assignment, assessment)
)
DATA_TYPE
---------
gallery
echo
turnitin
assignment
assessment
UNPIVOT在这里工作得很好:
with t as (
select 'gallery' as gallery,
'echo' as echo,
'turnitin' as turnitin,
'assignment' assignment,
'assessment' as assessment
from dual
)
select data_type
from t
unpivot (
data_type for column1 in (gallery, echo, turnitin, assignment, assessment)
)
DATA_TYPE
---------
gallery
echo
turnitin
assignment
assessment
你是我翅膀下的风。你是我翅膀下的风。另一种方法有效,但这种方法更清晰。选择较少,这种方法可能比我的方法更有效,尽管在现实世界中,我想你可能必须创造大量记录才能注意到改进。我认为如果你创建了很多记录,我的方法实际上会更清晰、更容易管理,但我想这可能是口味/观点的问题。顺便问一下,有什么特别的原因让你不直接创建一个表吗?@Bacs只读访问这个特定的数据库:)另一个可行,但这个方法更清晰。选择更少,这个方法可能比我的更有效,虽然在现实世界中,我想你可能必须创造大量的记录才能注意到改进。我认为如果你创建了很多记录,我的方法实际上会更清晰、更容易管理,但我想这可能是口味/观点的问题。顺便问一下,有什么特别的原因让你不直接创建一个表吗?@Bacs对这个数据库的只读访问:)