2017-04-04 42 views
0

我有一个名为VWDRSSTA的表,它具有以下字段 SYSTEM, EREIGNIS; DATUM_ZEIT, ANTRAGSNUMMER,VORGANGSNUMMER,VERS_NR_INT, DOK_ART, 邓克尔用案例创建sql视图

我期待在使用CASE语句两场DOK_ART和邓克尔创建该表的带有过滤器的视图。这是我试过的

CREATE VIEW VWDRSSTA_VIEW As 
SELECT SYSTEM, EREIGNIS, DATUM_ZEIT, ANTRAGSNUMMER, VORGANGSNUMMER, VERS_NR_INT, 
CASE 
WHEN EREIGNIS = 'EIN-ES' AND DOK_ART = 'EN' Then 'EN' 
ELSE '' 
END 
CASE 
WHEN EREIGNIS = 'POL_AN' AND DUNKEL = 1 Then 1 
ELSE '' 
END 
FROM VWDRSSTA; 

哪一个出问题了。我如何实现上述目标?

+0

向我们展示你所得到的确切的错误代码。然而,当你创建一个视图时,你忘记命名de'case column',所有的列必须有一个唯一的名字(在大多数dbms中)。您必须更改'CASE 当EREIGNIS ='EIN-ES'和DOK_ART ='EN'然后'EN' ELSE'' END'到'CASE 当EREIGNIS ='EIN-ES'和DOK_ART ='EN'时'EN' ELSE'' END AS MyCaseColumn1,'请留意最后一个逗号 – Rumpelstinsk

+0

您正在使用哪些DBMS? Postgres的?甲骨文? –

+0

您还在这些“CASE”表达式之间缺少逗号。 –

回答

2

试试这个:

CREATE OR REPLACE FROCE VIEW VWDRSSTA_VIEW As 
SELECT SYSTEM, EREIGNIS, DATUM_ZEIT, ANTRAGSNUMMER, VORGANGSNUMMER, VERS_NR_INT, 
     CASE 
     WHEN EREIGNIS = 'EIN-ES' AND DOK_ART = 'EN' 
     THEN 'EN' 
     ELSE '' 
     END AS DOK_ART, 
     CASE 
     WHEN EREIGNIS = 'POL_AN' AND DUNKEL = 1 
     THEN 1 
     ELSE '' 
     END AS DUNKEL   
    FROM 
     VWDRSSTA;