我用SQL查出来的结果有两列,如下:GoodsCode   Name
000001      钢笔
000002      铅笔
000003      毛笔
000004      画笔但是我还想在前面加上列号,使结果成为这样,如下:Number     GoodsCode     Name
1           000001       钢笔 
2           000002       铅笔
3           000003       毛笔
4           000004       画笔
这样的SQL语句怎么写啊?现在急用,在线等,高手指教!!

解决方案 »

  1.   

    select rowid as Number,* from table;
      

  2.   

    select identity(int,1,1) as Number,GoodsCode,Name into #Table from Table
    select * from #Table 就是你想要的东东!记得Drop Table #Table 
    仿照别人的,赫赫
      

  3.   

    双击DBGrid加一个字段
    procedure  TForm1.DBGrid1DrawColumnCell(Sender:  TObject;  const  Rect:  TRect;  
       DataCol:  Integer;  Column:  TColumn;  State:  TGridDrawState);  
    begin  
       if  Column.Index  =  0  then  
       with  DBGrid1.Canvas  do  begin  
           FillRect(Rect);  
           TextOut(Rect.Left+2,  Rect.Top+2,  IntToStr(DBGrid1.DataSource.DataSet.RecNo));  
       end;  
    end;
      

  4.   

    换种方法解决问题.代码如下:
     Number:=copy(filedByNmae('GoodsCode').asstring,5,1);
    这也该算是答案吧!
      

  5.   

    同意
    select identity(int,1,1) as Number,GoodsCode,Name into #Table from Table
    select * from #Table 就是你想要的东东!记得Drop Table #Table 
    仿照别人的,赫赫
      

  6.   

    我试了怎么不行啊?    这句SQL不用在Delphi里,我是直接在数据库里查啊!    不好使啊!!
      

  7.   

    用的什么数据库管理器,access?
      

  8.   

    你可以直接在设计表时假一个number 字段 自动增加的
      

  9.   

    楼上的方法很对,用临时表。如果您不想在数据库端完成,也可以在Query中用字算字段来做,把计算字段的值赋值为RecNo。
      

  10.   

    我一直也是用临时表
    这是曾经写的一个例子:
    try
    with frmDataModule.QFlags do begin
    Close;
    SQL.Clear;
    SQL.Text:='select Name from sysobjects where Name=''ProjectsumA''';
    Open;
    if FieldByName('Name').Value<>null then
    begin
    Close;
    SQL.Clear;
    SQL.Text:='drop table ProjectsumA';
    ExecSQL;
    end;
    Close;
    SQL.Clear;
    SQL.Text:='select IDENTITY(int,1,1) as 序号,* into ProjectsumA from (select * from projectsum) a';
    ExecSQL;
    end;
    with frmDataModule.QProject do begin
    Close;
    SQL.Clear;
    SQL.Text:='select * from projectsumA order by 序号';
    Open;
    end;
    except
    end;以上测试通过的。据说微软公开一个函数,可以实现这个功能,但具体不清楚。
      

  11.   

    sql server写一句上面写出的别名语句应该可以的。
      

  12.   

    inc()
    不就得了
    还用数据库吗?
      

  13.   

    哇噻,我不是SQL Server,我用的数据库是Sybase的!!
      

  14.   

    在Sybase里没有<IDENTITY>这个函数~!~!    楼上的朋友,你们一基本上一直都在说这么一个东西~
    除了这个函数就没有别的办法了吗?? 自己顶!!!!!! 
      

  15.   

    drift1981(一包香烟,一把吉他,浪迹天涯) 的那种方法,还有没有办法使序号居中???
      

  16.   

    adoquery1.close;
    adoquery1.sql.clear;
    adoquery1.sql.add('select GoodsCode,Name,
    IDENTITY(int,1,1) as 序号 ');
    adoquery1.sql.add('order by 序号 ASC');
    adoquery1.open;
    你试一下