【发布时间】:2014-03-05 04:35:13
【问题描述】:
我查看了许多合并列问题,但找不到一个可以解决我相当具体的问题的问题。我正在为学校做一个项目,我已经完成了大部分工作,但我被困在这个问题的一小部分。
基本上,我在我创建的表上运行 DESCRIBE 命令并得到以下结果:
Name Null? Type
----------------------------------------- -------- ------------
COURSEID NOT NULL VARCHAR2(7)
COURSE_NAME NOT NULL VARCHAR2(35)
STUDENT_COUNT NUMBER(5)
我需要做的是使用 USER_TAB_COLS 数据字典重新创建此结果。这是我到目前为止的结果:
select column_name "Name",
replace(replace(nullable, 'N', 'NOT NULL'), 'Y') "Null?",
(data_type || '(' || data_length || ')') "Type"
from user_tab_cols
where column_name = 'COURSEID'
or column_name = 'COURSE_NAME'
or column_name = 'STUDENT_COUNT';
Name Null? Type
----------------------------------------- -------- ------------
COURSEID NOT NULL VARCHAR2(7)
COURSE_NAME NOT NULL VARCHAR2(35)
STUDENT_COUNT NUMBER(22)
我的问题是 STUDENT_COUNT 行。类型的值是错误的。其他两行需要结合 DATA_TYPE 和 DATA_LENGTH 列才能得到正确的输出,但 STUDENT_COUNT 需要结合 DATA_TYPE 和 DATA_PRECISION 才能得到正确的输出。如何根据行将不同的列合并为一个?非常感谢任何帮助。
【问题讨论】:
-
Decode() 或案例会有所帮助
-
谢谢。案例完美地满足了我的需要。但我从未听说过解码()。它是如何工作的?
-
解码(data_type,'NUMBER',data_precision,data_length) 就是这样!!
-
漂亮而简单。我喜欢!我一定要记住那个。谢谢。