表Person中的UserID定义成了Varchar型, 实际上里面存的值是数字的, 如下:CREATE TABLE PERSON
(
UserID VARCHAR(10),
UserName VARCHAR(330)
)UserID   UserName 
8 xiaox
9 zhaa
10 wwee现在想按UserID排序查出数据:
Select  UserID from  PERSON order by UserID;但出来的结果是: 10,8, 9; 在不改字UserID 类型的情况下, 怎样让结果按数据大小排序? 即结果要这样顺序的: 8, 9 ,10.

解决方案 »

  1.   

    CREATE TABLE tb
    (
    UserID VARCHAR(10),
    UserName VARCHAR(10)
    )insert into tb values(8 , 'xiaox')
    insert into tb values(9 , 'zhaa')
    insert into tb values(10, 'wwee')
    goselect * from tb order by cast(userid as int)drop table tb/*
    UserID     UserName   
    ---------- ---------- 
    8          xiaox
    9          zhaa
    10         wwee(所影响的行数为 3 行)*/
      

  2.   

    order by cast(userid as int)
      

  3.   

    CREATE TABLE PERSON
    (
    UserID VARCHAR(10),
    UserName VARCHAR(10)
    )insert into PERSON values(8 , 'xiaox')
    insert into PERSON values(9 , 'zhaa')
    insert into PERSON values(10, 'wwee')
    goselect * from PERSON order by cast(userid as int)drop table PERSON
      

  4.   


    Select UserID from PERSON order by cast(UserID as int) asc;
      

  5.   

    order by cast(userid as int)
      

  6.   

    order by cast(userid as int)