由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Database版 - query questions
相关主题
Re: Recordset - I stuck! Help!纪录查找问题
Help! A cluster method in SQLOracle下如何能得到所有table的名字?
请教一个SQL QuerySQL 2000 doesn't support RowNumber()
好奇大家的数据库都是啥样的SSRS 牛人请进
开班了问一个简单的Query
求被“开班”培养!Help on Oracle Query
给大家贡献一个fb面试的sql问题DW BI ETL 问题 - Data Validation and Recordset Comparison (转载)
HELP: 如何实现 一个简单的QueryNeed help, about select count(xyz) from ...
相关话题的讨论汇总
话题: recordset话题: row话题: table话题: number话题: sql
进入Database版参与讨论
1 (共1页)
u***t
发帖数: 3986
1
from a recordset, how to fetch records from row 1000 to row 2000?
Thanks.
g***l
发帖数: 18555
2
SQL SERVER有一个ROW_NUMBER() FUNCTION,还可以用个TEMP TABLE 搞个IDENTITY
COLUMN,CREATE TABLE最好还是在STORED PROCEDURE里
u***t
发帖数: 3986
3
SQL SERVER 2008 doesn't recognize Row_Count(), dawn it!
i****a
发帖数: 36252
4
??
ROW_NUMBER()

【在 u***t 的大作中提到】
: SQL SERVER 2008 doesn't recognize Row_Count(), dawn it!
B*****g
发帖数: 34098
5
then use rowcount, hehe

【在 u***t 的大作中提到】
: SQL SERVER 2008 doesn't recognize Row_Count(), dawn it!
g***l
发帖数: 18555
6
ROW_NUMBER() RANK()两个FUNCTION是2005添加的,我们经常要用
http://msdn.microsoft.com/en-us/library/ms186734.aspx

【在 i****a 的大作中提到】
: ??
: ROW_NUMBER()

B*****g
发帖数: 34098
7
这个要算db版越境问题了。还是那句话,本版90%的sql问题可以用partition by解
决。

【在 g***l 的大作中提到】
: ROW_NUMBER() RANK()两个FUNCTION是2005添加的,我们经常要用
: http://msdn.microsoft.com/en-us/library/ms186734.aspx

g***l
发帖数: 18555
8
RECORDSET就是临时储存的东西,CREATE RECORDSET的时候就要加上ID,这样你才能取
1000-2000,否则你就要从头LOOP一遍。还是那句话,RECORDSET是个临时性的,最好数
据存TABLE里,多少RECORD,要哪几个COLUMNS,做好了,最后全读出来完事,
MANIPULATE RECORDSET又笨又慢,而且很容易出错。
u***t
发帖数: 3986
9
SQL SERVER MANAGEMENT STUDIO 2008
select ROW_NUMBER() OVER (ORDER BY ShopperID) AS 'RowNumber', ShopperID,
ShipEmail from Profiles.dbo.address WHERE RowNumber BETWEEN 2 AND 5
Msg 195, Level 15, State 10, Line 2
'ROW_NUMBER' is not a recognized function name.
B*****g
发帖数: 34098
10
哥们,你有木有读gejkl贴的link?

【在 u***t 的大作中提到】
: SQL SERVER MANAGEMENT STUDIO 2008
: select ROW_NUMBER() OVER (ORDER BY ShopperID) AS 'RowNumber', ShopperID,
: ShipEmail from Profiles.dbo.address WHERE RowNumber BETWEEN 2 AND 5
: Msg 195, Level 15, State 10, Line 2
: 'ROW_NUMBER' is not a recognized function name.

相关主题
求被“开班”培养!纪录查找问题
给大家贡献一个fb面试的sql问题Oracle下如何能得到所有table的名字?
HELP: 如何实现 一个简单的QuerySQL 2000 doesn't support RowNumber()
进入Database版参与讨论
g***l
发帖数: 18555
11
不能放在WHERE CLAUSE里,
select * from ( select ROW_NUMBER() OVER (ORDER BY ShopperID) AS RowNumber,
ShopperID,
u***t
发帖数: 3986
12
kind of. Why? do I have a syntax error?
I am no DBA but a VB developer who's implementing an framework to validate
ETL data migration.

【在 B*****g 的大作中提到】
: 哥们,你有木有读gejkl贴的link?
i****a
发帖数: 36252
13
select @@version
what do you get?
and you need to put result into a temp table before you can use "RowNumber"

【在 u***t 的大作中提到】
: SQL SERVER MANAGEMENT STUDIO 2008
: select ROW_NUMBER() OVER (ORDER BY ShopperID) AS 'RowNumber', ShopperID,
: ShipEmail from Profiles.dbo.address WHERE RowNumber BETWEEN 2 AND 5
: Msg 195, Level 15, State 10, Line 2
: 'ROW_NUMBER' is not a recognized function name.

B*****g
发帖数: 34098
14
再读一边吧,尤其是例子。

【在 u***t 的大作中提到】
: kind of. Why? do I have a syntax error?
: I am no DBA but a VB developer who's implementing an framework to validate
: ETL data migration.

g***l
发帖数: 18555
15
老兄,你好像没有基本的DEVELOPMENT的概念啊,不是凑合着能把数据弄对就完了。
VB DEVELOPER, 打开数据放网上
DB DEVELOPER 写STORED PROCEDURE
DBA提供SCHEMA, 数据

【在 u***t 的大作中提到】
: kind of. Why? do I have a syntax error?
: I am no DBA but a VB developer who's implementing an framework to validate
: ETL data migration.

u***t
发帖数: 3986
16
SELECT @@ VERSION:
SQL SERVER 2000 - 8.00.2282
Dang!

【在 i****a 的大作中提到】
: select @@version
: what do you get?
: and you need to put result into a temp table before you can use "RowNumber"

g***l
发帖数: 18555
17
我已经给你改好了,ROW_NUMBER等于是重新对你的QUERY排序,你不能在排序的时候
FILTER,而必须到排完序之后的QUERY再FILTER。

【在 u***t 的大作中提到】
: SELECT @@ VERSION:
: SQL SERVER 2000 - 8.00.2282
: Dang!

u***t
发帖数: 3986
18
我用VB 写framework自动比较SOURCE和TARGET的数据并且产生报告, 我也不知道算是啥
...你说?

【在 g***l 的大作中提到】
: 老兄,你好像没有基本的DEVELOPMENT的概念啊,不是凑合着能把数据弄对就完了。
: VB DEVELOPER, 打开数据放网上
: DB DEVELOPER 写STORED PROCEDURE
: DBA提供SCHEMA, 数据

u***t
发帖数: 3986
19
2000不支持ROW_NUMBER()function

【在 g***l 的大作中提到】
: 我已经给你改好了,ROW_NUMBER等于是重新对你的QUERY排序,你不能在排序的时候
: FILTER,而必须到排完序之后的QUERY再FILTER。

u***t
发帖数: 3986
20
还有什么办法?
相关主题
SSRS 牛人请进DW BI ETL 问题 - Data Validation and Recordset Comparison (转载)
问一个简单的QueryNeed help, about select count(xyz) from ...
Help on Oracle Query请教怎么来log duration of a MYSQL procedure?
进入Database版参与讨论
i****a
发帖数: 36252
21
古歌
http://support.microsoft.com/kb/186133

【在 u***t 的大作中提到】
: 还有什么办法?
g***l
发帖数: 18555
22
两个TABLE之间的比较用VB,妈也,打开SOURCE的RECORDSET,一个记录一个记录的走,
然后再打开TARGET的RECORDSET,一个记录一个记录,两个LOOP套一起,这可是最笨的
办法了。数据库两个表比较不难的啊。

【在 u***t 的大作中提到】
: 我用VB 写framework自动比较SOURCE和TARGET的数据并且产生报告, 我也不知道算是啥
: ...你说?

u***t
发帖数: 3986
23
就是不要single record的processing.
要recordset.
用recordset.delete()如何?

【在 g***l 的大作中提到】
: 两个TABLE之间的比较用VB,妈也,打开SOURCE的RECORDSET,一个记录一个记录的走,
: 然后再打开TARGET的RECORDSET,一个记录一个记录,两个LOOP套一起,这可是最笨的
: 办法了。数据库两个表比较不难的啊。

g***l
发帖数: 18555
24
明明是数据库的问题你非要用VB,你把他们IMPORT一个DATBASE里面比较是最容易的,
其它的办法都是愚蠢的,做不对的可能也很大。

【在 u***t 的大作中提到】
: 就是不要single record的processing.
: 要recordset.
: 用recordset.delete()如何?

u***t
发帖数: 3986
25
没有权限走这条路

【在 g***l 的大作中提到】
: 明明是数据库的问题你非要用VB,你把他们IMPORT一个DATBASE里面比较是最容易的,
: 其它的办法都是愚蠢的,做不对的可能也很大。

u***t
发帖数: 3986
26
想了个办法:
select *
from (
select top 10 *
from (
select top 20(or 30, or 40...) *
from table
order by ...id
) tab order by ...id DESC
) tab1 order by ...id
g***l
发帖数: 18555
27
两个TABLE比较要在KEY上比啊,您老这是在做什么?

【在 u***t 的大作中提到】
: 想了个办法:
: select *
: from (
: select top 10 *
: from (
: select top 20(or 30, or 40...) *
: from table
: order by ...id
: ) tab order by ...id DESC
: ) tab1 order by ...id

u***t
发帖数: 3986
28
breaking up a huge recordset into multiple smaller recordsets so I can use
Union All with Count(*) to compare the source and target recordsets.
No keys, can't process the comparison records by records.

【在 g***l 的大作中提到】
: 两个TABLE比较要在KEY上比啊,您老这是在做什么?
g***l
发帖数: 18555
29
我真服了你的,你是不假设两个TABLE是一模一样的包括顺序?没KEY你比什么,就只能
一个记录一个记录的去比,每个COLUMN都要MATCH,MATCH了放到MATCH的堆里,不MATCH
就放不MATCH的堆里,SOURCE走一遍搞两堆,然后TARGET再走一边,再分两堆。你脑子
现在很糊涂,根本不知道在做什么。

【在 u***t 的大作中提到】
: breaking up a huge recordset into multiple smaller recordsets so I can use
: Union All with Count(*) to compare the source and target recordsets.
: No keys, can't process the comparison records by records.

B*****g
发帖数: 34098
30
你干嘛不在在VB里每1000个一停

【在 u***t 的大作中提到】
: breaking up a huge recordset into multiple smaller recordsets so I can use
: Union All with Count(*) to compare the source and target recordsets.
: No keys, can't process the comparison records by records.

相关主题
问一个queryHelp! A cluster method in SQL
sql面试题目求指点请教一个SQL Query
Re: Recordset - I stuck! Help!好奇大家的数据库都是啥样的
进入Database版参与讨论
g***l
发帖数: 18555
31
他是假设两个TABLE一模一样的去比,包括顺序也一样,但实际情况复杂的很,比如
SOURCE多一个记录,又没有PRIMARY KEY,只能去TABLE SCAN
source target
1 1
2 3
3 4
4 5
5 6

【在 B*****g 的大作中提到】
: 你干嘛不在在VB里每1000个一停
u***t
发帖数: 3986
32
你不知道我干什么...source的东西是标准, target里的东西是要看是否migrate 好的.
所以我break up source 的 recordset, 那每个recordset PK的上下限到target里去拿
相应recordset做对比 (...union all...count(*) = 1...是mismatched)
我不做ETL, 我自动测试ETL...
我看你糊涂...

MATCH

【在 g***l 的大作中提到】
: 我真服了你的,你是不假设两个TABLE是一模一样的包括顺序?没KEY你比什么,就只能
: 一个记录一个记录的去比,每个COLUMN都要MATCH,MATCH了放到MATCH的堆里,不MATCH
: 就放不MATCH的堆里,SOURCE走一遍搞两堆,然后TARGET再走一边,再分两堆。你脑子
: 现在很糊涂,根本不知道在做什么。

y****w
发帖数: 3747
33
这种思想在数据库这个讲究thinking in set的地方当然会受点攻击,呵呵。
-----------------
考虑下这个,如果你恰好有条件搞,
弄一个本地库,把src和tgt都搞来,在本地比较就行了。 随便oracle,db2,sql server
,mysql都可以,不想麻烦装数据库就拷贝个derby之类的内存库,几M一个jar包这个数
据库系统就有了,用java或什么你熟悉的语言去访问,简单的很。
如果只有几万甚至几十万条记录,自己做loop怎么慢慢也能跑出来;要是有个几十M几
百M,还是用现成的好些。 别忘了索引。

的.

【在 u***t 的大作中提到】
: 你不知道我干什么...source的东西是标准, target里的东西是要看是否migrate 好的.
: 所以我break up source 的 recordset, 那每个recordset PK的上下限到target里去拿
: 相应recordset做对比 (...union all...count(*) = 1...是mismatched)
: 我不做ETL, 我自动测试ETL...
: 我看你糊涂...
:
: MATCH

c*******e
发帖数: 8624
34
你这个recordset是table吗? table本身是无序的

【在 u***t 的大作中提到】
: from a recordset, how to fetch records from row 1000 to row 2000?
: Thanks.

B*****g
发帖数: 34098
35
你要把所有贴字都看完才知道

【在 c*******e 的大作中提到】
: 你这个recordset是table吗? table本身是无序的
c*******e
发帖数: 8624
36
算了,您老给解决就行了

【在 B*****g 的大作中提到】
: 你要把所有贴字都看完才知道
B*****g
发帖数: 34098
37
不行呀,vb+sql server2000那是10年前的事了

【在 c*******e 的大作中提到】
: 算了,您老给解决就行了
y****w
发帖数: 3747
38
假如这个验证可以做成单独的模块,那技术选择面就大多了。绑在vb里面,确实办法不
多。

【在 B*****g 的大作中提到】
: 不行呀,vb+sql server2000那是10年前的事了
B*****g
发帖数: 34098
39
java, haha

【在 y****w 的大作中提到】
: 假如这个验证可以做成单独的模块,那技术选择面就大多了。绑在vb里面,确实办法不
: 多。

y****w
发帖数: 3747
40
y, derby with java. easy, nice sql support, totally free.

【在 B*****g 的大作中提到】
: java, haha
相关主题
好奇大家的数据库都是啥样的给大家贡献一个fb面试的sql问题
开班了HELP: 如何实现 一个简单的Query
求被“开班”培养!纪录查找问题
进入Database版参与讨论
m******y
发帖数: 588
41
2000比较麻烦,加个identity column吧.
1 (共1页)
进入Database版参与讨论
相关主题
Need help, about select count(xyz) from ...开班了
请教怎么来log duration of a MYSQL procedure?求被“开班”培养!
问一个query给大家贡献一个fb面试的sql问题
sql面试题目求指点HELP: 如何实现 一个简单的Query
Re: Recordset - I stuck! Help!纪录查找问题
Help! A cluster method in SQLOracle下如何能得到所有table的名字?
请教一个SQL QuerySQL 2000 doesn't support RowNumber()
好奇大家的数据库都是啥样的SSRS 牛人请进
相关话题的讨论汇总
话题: recordset话题: row话题: table话题: number话题: sql