Sql server 这是获得列的最大值-1的最佳方法吗?

Sql server 这是获得列的最大值-1的最佳方法吗?,sql-server,Sql Server,我们有一个表,它有一个名为JOBNUM的列,这是一个字母数字列,它的值有ABC-101A、ABC-102F、XYZ-254D等。这些值是按顺序分配的。这是最新的一个: SELECT MAX(JOBNUM) FROM WEEKLY.dbo.Jobs_all 我需要一种方法来获取以前的JOBNUM,而不是最新的JOBNUM。这似乎有效…除非有人有更好的主意 SELECT MAX(JOBNUM) FROM WEEKLY.dbo.Jobs_All WHERE JOBNUM NOT IN (SELEC

我们有一个表,它有一个名为JOBNUM的列,这是一个字母数字列,它的值有ABC-101A、ABC-102F、XYZ-254D等。这些值是按顺序分配的。这是最新的一个:

SELECT MAX(JOBNUM) FROM WEEKLY.dbo.Jobs_all
我需要一种方法来获取以前的JOBNUM,而不是最新的JOBNUM。这似乎有效…除非有人有更好的主意

SELECT MAX(JOBNUM) FROM WEEKLY.dbo.Jobs_All 
WHERE JOBNUM NOT IN (SELECT MAX(JOBNUM) FROM WEEKLY.dbo.Jobs_all)

使用CTE和行数窗口功能可以提供更大的灵活性

WITH CTE AS (
SELECT row_number() over (order by jobNum desc) , jobNum
FROM WEEKLY.dbo.Jobs_All)
SELECT * 
FROM CTE 
WHERE RN = 2 

使用CTE和行数窗口功能可以提供更大的灵活性

WITH CTE AS (
SELECT row_number() over (order by jobNum desc) , jobNum
FROM WEEKLY.dbo.Jobs_All)
SELECT * 
FROM CTE 
WHERE RN = 2 

这是一个很好的方向

2个更有效的方法:

SELECT (JOBNUM) FROM WEEKLY.dbo.Jobs_All ORDER BY JOBNUM DESC LIMIT 1 OFFSET 1
或:


使用这是一个很好的方向

2个更有效的方法:

SELECT (JOBNUM) FROM WEEKLY.dbo.Jobs_All ORDER BY JOBNUM DESC LIMIT 1 OFFSET 1
或:

使用方法如下

SELECT MAX(JOBNUM) FROM WEEKLY.dbo.Jobs_All WHERE JOBNUM < (SELECT MAX(JOBNUM) FROM WEEKLY.dbo.Jobs_all)
希望这有帮助

以下是方法

SELECT MAX(JOBNUM) FROM WEEKLY.dbo.Jobs_All WHERE JOBNUM < (SELECT MAX(JOBNUM) FROM WEEKLY.dbo.Jobs_all)


希望这有帮助

是否从WEEKLY.dbo.Jobs中选择JOBNUM\u所有订单按JOBNUM DESC OFFSET 1行提取下一行工作?我不太懂SQL Server,但发现这表明它可能…@ryan可以工作,前提是它们在Azure或2016 I版本中,我认为。偏移量获取可从大于>=2012的版本中获得,并且自2008年以来在ORACLE/HANA中工作的时间太长:P@KobyDouek:这大约相当于两千次点击的锁定-我担心你可能会完成之前的另一次投票=是否从WEEKLY.dbo.Jobs中选择JOBNUM\u所有订单按JOBNUM DESC OFFSET 1行取回下一行工作?我不太懂SQL Server,但发现这表明它可能…@ryan可以工作,前提是它们在Azure或2016 I版本中,我认为。偏移量获取可从大于>=2012的版本中获得,并且自2008年以来在ORACLE/HANA中工作的时间太长:P@KobyDouek:这大约相当于两千次点击的锁定-我担心你可能会在我结束之前的另一次投票=即将发布同样的内容我试图找出如何在交叉申请中做到这一点,但我放弃了,尽管限制和抵消似乎是一个好的/最好的方法。我正要发布同样的内容我试图找出如何在交叉应用中实现这一点,尽管限制和偏移似乎是一种好的/最好的方法,但我还是放弃了。更有效的方法是提高性能或准确性?@Simon Speaker。但是由于MAX selection返回1个结果,因此速度会快一点。感谢您提供关于<而不是不在的提示。我不相信极限可以用在SQL中Server@BrianBattles是的,是的available@BrianBattles哪种版本?更高效,性能更好、速度更快或准确性更好?@Simon更快。但是由于MAX selection返回1个结果,因此速度会快一点。感谢您提供关于<而不是不在的提示。我不相信极限可以用在SQL中Server@BrianBattles是的,是的available@BrianBattles哪种版本?