Sql server 查询以选择1000条具有多主键的记录,以便我可以验证数据是否在两个DB之间映射
背景:从Oracle到SQL Server的数据迁移,Oracle和SQL Server中都存在表A 表A在Oracle中有4列作为主键,并且已复制到SQL Server。当我在Oracle中从表A中选择1000条记录时,如何使用一个查询在SQL Server中选择相同的记录 Oracle中的SQL:Sql server 查询以选择1000条具有多主键的记录,以便我可以验证数据是否在两个DB之间映射,sql-server,oracle,Sql Server,Oracle,背景:从Oracle到SQL Server的数据迁移,Oracle和SQL Server中都存在表A 表A在Oracle中有4列作为主键,并且已复制到SQL Server。当我在Oracle中从表A中选择1000条记录时,如何使用一个查询在SQL Server中选择相同的记录 Oracle中的SQL: SELECT A, B, C, D FROM (SELECT ROWNUM AS RN, T1.* FROM T1) WHERE RN > 0 AND RN &
SELECT
A, B, C, D
FROM
(SELECT ROWNUM AS RN, T1.* FROM T1)
WHERE
RN > 0 AND RN <= 1000
我的理解是,当在两台服务器上分别执行相同的查询时,您需要相同的1000条记录 您可以使用以下任一查询来实现这一点: 1将ROWNUM与order by一起使用
干杯 如果您希望同时从MSSQL和Oracle中选择数据,可以考虑在MSSQL中创建类似的服务器。@mkRabbani,谢谢,但我只有select权限访问这两个数据库。
SELECT A, B, C, D FROM
(SELECT A, B, C, D, ROWNUM AS RN
FROM (SELECT T1.* FROM T1 ORDER BY A, B, C, D))
WHERE RN > 0
AND RN <= 1000
SELECT A, B, C, D
FROM (SELECT ROW_NUMBER() OVER (ORDER BY A, B, C, D) AS RN, T1.* FROM T1)
WHERE RN > 0
AND RN <= 1000