SQL Plus将列名放在行上

时间:2015-04-18 20:50:44

标签: sql oracle oracle11g string-concatenation

我的代码遇到了一些问题。

当前输出:

COLUMN_NAME
-----------
Value 1
Value 2

预期产出:

COLUMN_NAME: Value 1
COLUMN_NAME: Value 2

我正在尝试这样做:

COLUMN STU_NUM  NEW_VALUE STU_NUMVAR NOPRINT
COLUMN LNAME  NEW_VALUE LNAMEVAR NOPRINT
COLUMN FNAME  NEW_VALUE FNAMEVAR NOPRINT
COLUMN RANK  NEW_VALUE RANKVAR NOPRINT
COLUMN STATUS NEW_VALUE STATUSVAR NOPRINT
TTITLE LEFT 'Student STU_NUM: ' STU_NUMVAR  -
LEFT 'Name: ' LNAMEVAR -
LEFT 'Rank: ' RANKVAR -
LEFT 'Status: ' STATUSVAR - 
SELECT STU_NUM, LNAME, FNAME, RANK, STATUS FROM STUDENT WHERE STU_NUM = '&StuID';

但目前我没有得到任何输出。

2 个答案:

答案 0 :(得分:2)

要在所有行中打印column_name,只需 CONCATENATE 列号作为硬编码字符串值包含在单行中引号

您可以使用连接运算符 ||

例如,

SELECT 'STU_NUM : ' || STU_NUM FROM STUDENT WHERE STU_NUM = '&StuID';

同样,也可以为其他列连接column_name。

答案 1 :(得分:0)

更普遍的决定是将您的表与user_tab_columns结合使用,如果您选择的表格可以显示列名称。尝试用dsql来完成。