当前位置: 首页 > 知识库问答 >
问题:

当键不是数字而是字母数字值时,在循环中选择特定数量的行

公孙栋
2023-03-14

我试图从SQL Server中的某些表中选择1000行,在某些情况下很容易,因为我确实有一个bigint键。因此,我存储我获取的密钥的最后一个号码,然后在上面加上100。见下文:

--Get the last loaded record
DECLARE @StartIndex BIGINT

SET @StartIndex = 1 + (SELECT [StoredIndex]
                       FROM [DB].[dbo].[MasterData]
                       WHERE [Status] = 'LastLoad')

--Declare and set the last record that was loaded
DECLARE @EndIndex BIGINT

--Retrieve the next @Step+1 or less records and store them in a temporary table
SELECT T1.*
INTO #TempResults
FROM
    --Get the next @Step+1 or less records
    (SELECT *
     FROM ANOTHERDB.[TableName]
     WHERE [Tables_ID] BETWEEN @StartIndex AND @StartIndex + 1000) T1

--Set the index of the last record inserted
SET @EndIndex = (SELECT MAX([Tables_ID])--The next record fetched with the largest ID
                 FROM #TempResults)

但是,当键是字母数字值时,如何做到这一点呢?

什么是等价物

WHERE [Tables_ID] BETWEEN @StartIndex AND @StartIndex + 1000

如果@startindexNVARCHAR,例如123G7_56Y7F

谢谢你!

共有1个答案

胡云瀚
2023-03-14

方法一:

如果您使用的是SQL Server 2012或更高版本,则可以使用偏移量提取,如下所示:

  SELECT    *
  FROM      ANOTHERDB.[TableName]
  ORDER BY  Col1 
  OFFSET XX ROWS FETCH NEXT YY ROWS ONLY;

Col1=要对数据进行排序的列

  SELECT    *
  FROM      ( SELECT    * ,
                    ROW_NUMBER() OVER ( ORDER BY COL1) AS RN
          FROM      ANOTHERDB.[TableName]
        ) AS K
  WHERE     K.RN BETWEEN XX AND YY;
 类似资料:
  • 我正在运行测试的类: 测试课程: 当我用一个通过的数字运行测试时,它工作正常,但是当我把它换成不同的东西时,例如69,我得到的是数值,而不是字母: 实际值不应该是D,而应该是F吗?我做错了什么?我正在看这个教程,在15:38,他把它们作为字母而不是数字。

  • 问题内容: 我想计算以下字符串中的字母,数字和特殊字符的数量: 我试过了: 但我遇到了错误。我对此尝试了各种其他变化-仍然出现错误-如: 找不到’<=’的重载,该重载接受提供的参数 问题答案: Swift 3更新: (以前的Swift版本的答案) 一个可能的Swift解决方案: 更新: 上述解决方案仅适用于ASCII字符集中的字符,即不能将Ä,é或ø识别为字母。Foundation框架使用以下替代

  • 我正在将数据导入到第三方CRM中,并且对电话号码字段的限制比源数据库(MySQL)的限制更严格。我想抓取选择中的前10个数字字符。我没有整理现有数据的灵活性。我只能用那里的东西工作。到目前为止,我在论坛上所能找到的似乎都是创建一个自定义函数。自定义函数是唯一的方法吗?环境是MySQL5.7.19。 提前道谢!

  • 问题内容: 这只是给我最后一个字符(数字),但我需要整个数字字符串 结果:3 期望值:123 这给了我相同的结果,但是我需要它返回一个空白值: 结果:3 期望: 注意:Postgres 7.4 有用的链接:http : //www.postgresql.org/docs/7.4/static/functions- matching.html 更新: 两者现在都返回:123 仍然需要跳过或返回以下字

  • 问题内容: 我正在尝试使用以下命令选择MySQL中仅包含字母数字字符的所有行: 但是,它将返回所有行,而不管它们包含非字母数字字符的事实。 问题答案: 试试这个代码: 这样可以确保所有字符都匹配。

  • 我在firefox和internet Explorer中的有一些问题。在firefox和IE中键入字符将是数字,但文本也可以键入。在Chrome中工作完美。是否可以不使用进行修复。提前致谢