Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 使用case-when语句创建视图_Sql_Oracle_Select_Case When_Create View - Fatal编程技术网

Sql 使用case-when语句创建视图

Sql 使用case-when语句创建视图,sql,oracle,select,case-when,create-view,Sql,Oracle,Select,Case When,Create View,请参考我下面的例子,以便更清楚地了解我在做什么 例如: Create View v AS Select T.*, S.Name, Case When T.TESTDATE = S.STUDYDATE Then 'Yes' else 'No' END AS TakenTest From Test T, Student S Where T.TESTPAPERID = '12345' And T.StudentNo = S.StudentNo; 它成功地创建了视图。但是,它使用相同的值填充重复的行,

请参考我下面的例子,以便更清楚地了解我在做什么

例如:

Create View v AS
Select T.*, S.Name, Case When T.TESTDATE = S.STUDYDATE
Then 'Yes' else 'No' END AS TakenTest
From Test T, Student S
Where T.TESTPAPERID = '12345'
And T.StudentNo = S.StudentNo;
它成功地创建了视图。但是,它使用相同的值填充重复的行,如:

TESTPAPERID      StudentNo      Name     TakenTest
12345            6437           John     Yes
12345            6437           John     No
我如何解决它,因为我已经定义了,如果T.TESTDATE=S.STUDYDATE,那么显示yes。否则为否,并且不填充相同的值


感谢您只有一行,请使用以下命令:

MAX(Case When T.TESTDATE = S.STUDYDATE Then 'Yes' else 'No' END)
...
GROUP BY <all other columns, which you haven't shown>
因为它与:

T.TESTPAPERID = '12345'

要仅包含一行,请使用以下命令:

MAX(Case When T.TESTDATE = S.STUDYDATE Then 'Yes' else 'No' END)
...
GROUP BY <all other columns, which you haven't shown>
因为它与:

T.TESTPAPERID = '12345'

为我的错误道歉。但该语句不会影响复制行的结果。虽然这看起来解决了问题,但在查询中使用分组或distinct(在不合适的情况下)通常会标记缺少连接条件或重复行。在向查询中添加分组之前,我会仔细了解数据模型。但那只是我。@MikeyByCrikey你是说我错过了一些连接条件,这让我有了重复的行?我已经从不同的表中加入了所有必需的属性。请为我的错误道歉。但该语句不会影响复制行的结果。虽然这看起来解决了问题,但在查询中使用分组或distinct(在不合适的情况下)通常会标记缺少连接条件或重复行。在向查询中添加分组之前,我会仔细了解数据模型。但那只是我。@MikeyByCrikey你是说我错过了一些连接条件,这让我有了重复的行?我已经从不同的表中连接了所有必需的属性。