今天是个好日子 。我一直在寻找我们教授要我们做的活动。
例如,我的列名是tax
,tax
具有以下值:
TAX
-----
3681
4292
4895
1894
1127
该程序应显示数字 3681 和 1127 。非常感谢任何回应。顺便说一句,我们学校使用的是 MS SQL Server 2000。
今天是个好日子 。我一直在寻找我们教授要我们做的活动。
例如,我的列名是tax
,tax
具有以下值:
TAX
-----
3681
4292
4895
1894
1127
该程序应显示数字 3681 和 1127 。非常感谢任何回应。顺便说一句,我们学校使用的是 MS SQL Server 2000。
你可以使用这个:
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
SELECT MIN(tax), Max(tax)
FROM Table
WHERE tax %2 <> 0
演示: SQL 小提琴
如果您实际上想要无序列表中的第一个和最后一个,这是一个更棘手的命题,结果可能会不一致,因为没有 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)
根据我对您问题的理解,您正在寻找具有最低或最高奇数的行作为最后一个字符?如果是这样,那么这应该工作:
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)
select tax from Table fetch first 1 row only;
select tax from table fetch last 1 row only;