1

私は次の表を持っています

ID      TYPE        Text       ImagePath     Title    Date

 1      Text        Test        NULL          NULL     14/10/2013
 2      Image       NULL        /test/test    NULL     14/10/2013
 3      Title       NULL        NULL          Test     14/10/2013
 4      Text        Test2       NULL          NULL     20/12/2012

最後の 3 つの (日付でソートされた) レコードのみを取得するにはどうすればよいですか? (基本的に、NULL ではないタイプと関連フィールドのみが必要です。

4

2 に答える 2

1

あなたの質問に対するコメントで述べたようにデータベースを再構築することとは別に、これはあなたが望むものを与えるはずです(私が質問を正しく理解していれば):

SELECT
TOP 1 
'Text' AS Type,
Text
FROM
your_table
ORDER BY Date DESC
UNION ALL
SELECT
TOP 1 
'ImagePath',
ImagePath
FROM
your_table
ORDER BY Date DESC
UNION ALL
SELECT
'Title', 
TOP 1 Title
FROM
your_table
ORDER BY Date DESC

機能させるには、あちこちに括弧を入れる必要があるかもしれません...

于 2013-10-14T15:39:21.210 に答える
0

1つのアイデアは次のとおりです。

SELECT  * FROM table where TYPE = 'Text' OFFSET 1 ROWS FETCH NEXT 1 ROWS ONLY 
union
SELECT  * FROM table where TYPE = 'Image' OFFSET 1 ROWS FETCH NEXT 1 ROWS ONLY 
union
SELECT  * FROM table where TYPE = 'Title' OFFSET 1 ROWS FETCH NEXT 1 ROWS ONLY 
于 2013-10-14T15:27:21.467 に答える