2014-10-08 70 views
0

我有一个名为'Measure'的列,其中包含多个值。当此列的值是“专业”,我想执行如下:根据case语句执行不同的查询

select * 
from students; 

而当值是其他任何东西,我想执行:

select distinct * 
from students; 

我已经使用CASE语句在过去返回一个单一的价值。他们如何能够返回整个查询?另外,如何在没有CASE的情况下处理这个问题?

任何帮助表示赞赏。

回答

2

我想试试这个。基本上,它会给你所有的专业结果,然后加上其他结果。

SELECT * FROM students 
WHERE Measure = 'Majors' 
UNION 
SELECT DISTINCT * FROM students 
WHERE Measure <> 'Majors' 
+0

'测量'实际上是一个提示,因此用户可以选择任何一个测量值。因此,无论“测量”的值如何,UNION都会给出完整的结果集。 – 2014-10-08 21:04:37

+0

你可以使用像这样的变量: 声明@variable Varchar(@name然后键入)并在querry中使用该变量 – Alex 2014-10-08 21:07:40

+0

Set @variable ='something' – Alex 2014-10-08 21:09:36