2013-06-24 92 views
2

我使用SQL Server 2008.i有包含兩個columns.one是電影名稱和其他一個一個表是rating.my表結構類似:如何在sqlserver 2008中顯示數據?

MovieName | Rating 
ABC  | 3 
XYZ  | 2 
DEF  | 1 

我用下面的語句來顯示我的表記錄。

Select * from tablename 

我想要什麼手段,而不是顯示的評級爲數字應該顯示,適合等級3,更好地爲等級2和最壞的評價1.

即)

我要像這

MovieName | Rating 
ABC  | Good 
XYZ  | Better 
DEF  | Worst 

任何人都可以告訴我如何使用sql語句顯示這樣?

回答

2

您可以使用CASE地圖上飛:但是,優選

SELECT MovieName, 
CASE Rating 
    WHEN 3 then 'Good' 
    WHEN 2 then 'Better' 
    WHEN 1 then 'Worst' 
    END AS Rating 
FROM TableName 

,你應該使用一個Lookup table,然後的TableNameRating列可以爲外國鍵,然後加入到這個表來檢索評級。這將具有執行參照完整性的好處,並且還將允許更改評級名稱(或者例如跨語言友好),而不用硬編碼到代碼中。

4
SELECT MovieName, 
    CASE WHEN Rating = 1 THEN 'Worst' 
    CASE WHEN Rating = 2 THEN 'Better' 
    CASE WHEN Rating = 3 THEN 'Good' END AS Rating 
FROM tablename 

更好的解決辦法是有收視率多了一個表,並加入2個表來顯示結果:

SELECT a.MovieName, b.Description AS Rating 
FROM movies a JOIN ratings b on a.Rating = b.Rating 
1

好吧,如果你剛纔這3個等級,快速而簡單的解決辦法是:

SELECT MovieName, 
CASE rating 
    WHEN 3 then 'Good' 
    WHEN 2 then 'Better' 
    WHEN 1 THEN 'Worst' 
from table 

但是,如果你打算創造更多的收視率,我建議創建另一個表(查找表)持有評級名字。

Ratings 

Rating RatingName 
1   Worst 
2   Better 
3   Good 
4   Supercool 

當你有這個設置,你可以做這個操作更容易。

SELECT m.MovieName, r.RatingName 
FROM movies m join ratings r on m.rating = r.rating 

這將允許你插入更多的評級爲「類型」,你會不會有改變查詢(我第一次查詢),並添加案件情況的aditional的評級。在添加更多評分類型和其他評分的影片後,它們會自動顯示在您的結果中。