求一个sql查询相似值的语句? 有这么一个问题,在表A中有一个年龄的字段n,比如这个n=16,那么查找表A中所有的和n相近的项,并按照先=的排序 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 select * from A order by abs(n-16) declare @相近差 intset @相近差=3select * from 表 where abs(n-16)<=@相近差 order by abs(n-16) select * from A where n>=16 order by n 就是表User中有 用户名、密码、年龄几个字段现在要求在User表中查找100个年龄和指定年龄相同或相近的项(比方说年龄=16) select top 100 * from 表 order by abs(n-16) 感谢 hery2002 和 wgzaaa declare @t table(id int identity(1,1))declare @i intset @i=1while @i<1000 begin insert @t default values set @i=@i+1 endselect top 100 * from @t order by abs(id-500)id ----------- 500499501498502497503496504495505494506493507492508491509490510489511488512487513486514485515484516483517482518481519480520479521478522477523476524475525474526473527472528471529470530469531468532467533466534465535464536463537462538461539460540459541458542457543456544455545454546453547452548451549450 求一个简单过程的实现 关于SQL里IF做2个判断的问题 如何查询出当前数据表主健有无被其他数据作为外健 数据第一次运行很慢 如何转换整数类型到货币类型 根据一个select后的结果,取出另外一个结果。不用游标如何实现? 两个数据表数据更新的问题? 有关数据库日记的问题!! 有关限制插入操作的问题(SQL Server 2000),救急! Access中相当于SQL Server中的Charindex的函数是? SQL怎么传递表名? 还是查询不会写。。
set @相近差=3
select * from 表 where abs(n-16)<=@相近差 order by abs(n-16)
现在要求在User表中查找100个年龄和指定年龄相同或相近的项(比方说年龄=16)
declare @i int
set @i=1
while @i<1000
begin
insert @t default values
set @i=@i+1
end
select top 100 * from @t order by abs(id-500)
id
-----------
500
499
501
498
502
497
503
496
504
495
505
494
506
493
507
492
508
491
509
490
510
489
511
488
512
487
513
486
514
485
515
484
516
483
517
482
518
481
519
480
520
479
521
478
522
477
523
476
524
475
525
474
526
473
527
472
528
471
529
470
530
469
531
468
532
467
533
466
534
465
535
464
536
463
537
462
538
461
539
460
540
459
541
458
542
457
543
456
544
455
545
454
546
453
547
452
548
451
549
450