2014-10-08 65 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