显示具有第一个和最后一个奇数的行

时间:2013-06-23 03:24:25

标签: sql sql-server sql-server-2000

大家好日子。我一直在寻找我们教授希望我们做的活动很长时间。

例如,我的列名称为taxtax具有以下值:

 TAX
-----
3681
4292
4895
1894
1127

程序应显示数字3681和1127。任何回应都非常感谢。顺便说一句,我们学校正在使用MS SQL Server 2000。

4 个答案:

答案 0 :(得分:0)

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

演示:SQL Fiddle

如果你真的想从你的无序列表中得到第一个和最后一个,这是一个比较棘手的命题,结果可能会不一致,因为没有ORDER BY的值你不能保证顺序。通常会使用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)

答案 1 :(得分: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)

答案 2 :(得分: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

答案 3 :(得分:-1)

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