Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 查询以选择1000条具有多主键的记录,以便我可以验证数据是否在两个DB之间映射_Sql Server_Oracle - Fatal编程技术网

Sql server 查询以选择1000条具有多主键的记录,以便我可以验证数据是否在两个DB之间映射

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 &

背景:从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 <= 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