2013-06-23 86 views
-2

大家好日子。我一直在尋找很長時間來進行我們教授希望我們做的活動。顯示行與第一個和最後一個奇數

例如我的列名是taxtax有這些值:

TAX 
----- 
3681 
4292 
4895 
1894 
1127 

程序應該顯示數字3681和1127。任何迴應非常感謝。 btw我們學校正在使用MS SQL Server 2000。

+0

聽起來像一個硬件問題對我來說......你能向我們展示一些例子嗎?你可能試過的那些?你有什麼特別的問題?我們幫助你調試和解決你的查詢問題,但是我們不會爲你寫下它,而你沒有顯示某種嘗試:) –

+2

使用什麼邏輯你會得出結論,3681和1127是'第一個和最後一個奇數'?如果只考慮最後一位數字,那麼sgeddes就是這樣,如果這是一個錯誤,你真的想要第一個和最後一個在最低和最高,那麼我的答案就是這樣。如果你的意思是你的無序列表中的第一個和最後一個,這是另一回事。 –

+1

很高興聽到您的學校保持最新狀態。 SQL Server 2000已經退出了Microsoft的* extended *支持。 –

回答

-1
select tax from Table fetch first 1 row only; 
select tax from table fetch last 1 row only; 
+0

是什麼?這是你要求的... – koem

+0

哦,明白了。改變我的回答 – koem

0
SELECT MIN(tax), Max(tax) 
FROM Table 
WHERE tax %2 <> 0 

演示:SQL Fiddle

如果你真的想第一個和最後從你的無序列表,這是一個棘手的命題和結果可能是不一致的,因爲沒有一個值,以便通過你不能保證訂單。通常會使用ROW_NUMBER(),但無法在2000年,如果這就是你以後有選擇,最簡單的是做:

SELECT Tax, IDENTITY(1,1) as TaxID 
INTO Table2 
FROM Table1 

SELECT (SELECT TOP 1 Tax FROM Table2 WHERE Tax %2 <> 0 ORDER BY TaxID) 
     ,(SELECT TOP 1 Tax FROM Table2 WHERE Tax %2 <> 0 ORDER BY TaxID DESC) 
+0

任何關心解釋他們downvote? –

0

我從你的問題的理解,你正在尋找具有最低或最高奇數的行作爲最後一個字符?如果是這樣,那麼這應該工作:

select t.tax 
from yourtable t 
    join (
    select min(right(tax,1)) minoddchar, max(right(tax,1)) maxoddchar 
    from yourtable 
    where tax % 2 = 1 --ensure odd result 
    ) t2 on right(t.tax,1) in (t2.minoddchar, t2.maxoddchar) 
0

您可以使用此:

SELECT tax FROM Table ORDER BY tax.id ASC LIMIT 1 
UNION 
SELECT tax FROM Table ORDER BY tax.id DESC LIMIT 1 

或本:

SELECT MIN(tax.id), tax FROM Table 
UNION 
SELECT MAX(tax.id), tax FROM Table 
相關問題