有这么一个问题,在表A中有一个年龄的字段n,比如这个n=16,
那么查找表A中所有的和n相近的项,并按照先=的排序

解决方案 »

  1.   

    select * from A order by abs(n-16) 
      

  2.   

    declare @相近差 int
    set @相近差=3
    select * from 表 where abs(n-16)<=@相近差 order by abs(n-16)
      

  3.   

    select * from A where n>=16 order by n
      

  4.   

    就是表User中有 用户名、密码、年龄几个字段
    现在要求在User表中查找100个年龄和指定年龄相同或相近的项(比方说年龄=16)
      

  5.   

    select top 100 * from 表 order by abs(n-16)
      

  6.   

    感谢 hery2002  和 wgzaaa 
      

  7.   

    declare @t table(id int identity(1,1))
    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