2012-05-31 39 views
1

編輯:我正在使用DQLSQL多重排序和分組

我正在尋找與SQL查詢的幫助。

我的表格有一個電影列表,每個電影都有一個標題,seriesName和seriesNumber。是否有可能對它們進行排序,以便標題被列出爲A-Z,但是當系列出現時,將該系列組合在一起,將seriesName按字母順序放置,就像它位於movieTitle列中一樣,並按照seriesNumber排序。

不好解釋,但基本上我想要的是這樣的:

MovieTitle     SeriesName   SeriesNumber 
Blade Runner    NULL    NULL 
District 9     NULL    NULL 
Hot Fuzz     NULL    NULL 
I am Legend     NULL    NULL 
Fellowship of the Ring  Lord of the Rings 1 
Two Towers, The    Lord of the Rings 2 
Return of the King   Lord of the Rings 3 
Lost in Translation   NULL    NULL 
Matrix, The     Matrix    1 
Matrix Reloaded, The  Matrix    2 
Matrix Revolutions, The  Matrix    3 
Requiem for a Dream   NULL    NULL 
This is Spinal Tap   NULL    NULL 
Zodiac      NULL    NULL 

在此先感謝。

+0

哪個SQL方言? – Amadan

+0

DQL,在Symfony2中做一些東西 –

回答

2
SELECT * FROM x 
ORDER BY CASE 
    WHEN SeriesName is NOT NULL THEN SeriesName ELSE MovieTitle END 
    , SeriesNumber 

您可能必須這樣做,這樣

SELECT * FROM(
    SELECT *, CASE WHEN SeriesName is NOT NULL THEN SeriesName ELSE MovieTitle END SortOrder FROM x 
) 
ORDER BY SortOrder,SeriesNumber 
+0

非常感謝,我試着讓它在直接的DQL中工作,但它有點麻煩,最終使用原始的sql。感謝幫助:) –