black_wear
چهارشنبه 05 شهریور 1393, 07:11 صبح
سلام به همگی
ممنون از وقتی که بابت این سوال میذارید
وقتی از lead روی رکوردهای کمی استفاده میکنم بطور صحیح جواب میده اما وقتی رکوردها زیاد باشند نتیجه یه چیز عجیبی درمیاد!
دوستان کسی میدونه چرا؟!!!!
SELECT id
,var1
,LEAD(var1,1,null) OVER (ORDER BY var1) as nextvar
FROM T1
نتیجه درست(رکوردهای کم):
nextvar var1 id
3303 211807 222530
3304 222530 224128
3305 224128 224250
3306 224250 231244
3307 231244 NULL
نتیجه غلط (رکوردهای زیاد):(اصلا مقدارهای nextvar در دیتابیس وجود ندارند!!)
nextvar var1 id
3303 211807 215411
3304 222530 224128
3305 224128 224250
3306 224250 231244
3307 231244 NULL
3308 192834 192912
3309 192912 193017
3310 193017 203231
3311 203231 211807
3312 54238 54332
3313 54332 54518
3314 54518 54645
3315 54645 54742
3316 54742 54938
3317 54938 55032
3318 55032 55146
.................
از sql server 2012 استفاده میکنم
ممنون از وقتی که بابت این سوال میذارید
وقتی از lead روی رکوردهای کمی استفاده میکنم بطور صحیح جواب میده اما وقتی رکوردها زیاد باشند نتیجه یه چیز عجیبی درمیاد!
دوستان کسی میدونه چرا؟!!!!
SELECT id
,var1
,LEAD(var1,1,null) OVER (ORDER BY var1) as nextvar
FROM T1
نتیجه درست(رکوردهای کم):
nextvar var1 id
3303 211807 222530
3304 222530 224128
3305 224128 224250
3306 224250 231244
3307 231244 NULL
نتیجه غلط (رکوردهای زیاد):(اصلا مقدارهای nextvar در دیتابیس وجود ندارند!!)
nextvar var1 id
3303 211807 215411
3304 222530 224128
3305 224128 224250
3306 224250 231244
3307 231244 NULL
3308 192834 192912
3309 192912 193017
3310 193017 203231
3311 203231 211807
3312 54238 54332
3313 54332 54518
3314 54518 54645
3315 54645 54742
3316 54742 54938
3317 54938 55032
3318 55032 55146
.................
از sql server 2012 استفاده میکنم