0

我有一个表“病人”,它有 5 个字段。

CREATE TABLE PATIENT
(PAT_ID         CHAR (4) PRIMARY KEY,
 PAT_NAME       VARCHAR (7),
 ADMITTED       DATE,
 ROOM           CHAR (3),
 DOCTOR         VARCHAR (7));

INSERT INTO PATIENT VALUES
(1001, 'FRED', '30-MAR-07', 101, 'PAYNE');

我想创建一个视图,我的输出如下所示:

Patient      Doctor       Room         Admitted    
"-----------------------------------------------"
1001 Fred    Payne        101      March 31, 2007

问题是我想将 Pat_name 和 Pat_ID 连接到它们自己单独的“患者”列中,但其他三个字段也与之连接(注意“破折号”中没有分隔)。

基本上,我想要一列连接所有 5 列,但我还需要将前两列组合成一个名为“患者”的子列。

您可以在串联中串联吗?

4

3 回答 3

1
SELECT CONCAT(PAT_ID, ' ', PAT_NAME) AS Patient,
    DOCTOR AS Doctor, ROOM AS Room, ADMITTED AS Admitted
FROM PATIENT
于 2013-08-23T21:10:31.600 回答
0

事实证明,您实际上是在使用 Oracle Database。我仍然不确定您要以哪种方式连接哪些字段,但这应该足以让您滚动:

CREATE VIEW PATIENT_REPORT 
AS
SELECT
  PATIENT.PAT_ID||' '||PATIENT.PAT_NAME as "patient",
  PATIENT.DOCTOR||' '||PATIENT.ROOM||' '||PATIENT.ADMITTED as "details"
FROM PATIENT;

这是关于 SQL Fiddle 的现场演示。

于 2013-08-23T21:33:57.440 回答
0

这是按名称“view_name”创建视图的查询:

  create or replace view view_name as
select t.Pat_Id || ' ' || t.Pat_Name Patient,
       t.Doctor,
       t.Room,
       to_char(t.Admitted, 'Month dd, yyyy') Admitted
  from Patient t 
with read only;

你可以选择为

SELECT * FROM VIEW_NAME

我认为这里提供了足够的信息,您可以添加或操作(其他)列来显示。

于 2013-08-24T14:35:44.587 回答