SQL语句~怎么把查出来的结果加一列!在线等,要急疯了!!!!!!!!!

时间:2022-06-18 10:32:22
我用SQL查出来的结果有两列,如下:

GoodsCode   Name
000001      钢笔
000002      铅笔
000003      毛笔
000004      画笔

但是我还想在前面加上列号,使结果成为这样,如下:

Number     GoodsCode     Name
1           000001       钢笔 
2           000002       铅笔
3           000003       毛笔
4           000004       画笔


这样的SQL语句怎么写啊?

现在急用,在线等,高手指教!!

22 个解决方案

#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


來晚了 同意樓上的!

#4


双击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;

#5


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

#6


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

#7


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

#8


在数据库里是一样的,你实在不行,就转到vf下的库里做(最麻烦的方法了:))

#9


自己顶一下~!!    很有难度吗??

#10


错误信息是什么

#11


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

#12


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

#13


楼上的方法很对,用临时表。

如果您不想在数据库端完成,也可以在Query中用字算字段来做,把计算字段的值赋值为RecNo。

#14


up

#15


我一直也是用临时表
这是曾经写的一个例子:
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;

以上测试通过的。

据说微软公开一个函数,可以实现这个功能,但具体不清楚。

#16


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

#17


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

#18


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

#19


一样的

#20


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

自己顶!!!!!! 

#21


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

#22


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

#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


來晚了 同意樓上的!

#4


双击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;

#5


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

#6


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

#7


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

#8


在数据库里是一样的,你实在不行,就转到vf下的库里做(最麻烦的方法了:))

#9


自己顶一下~!!    很有难度吗??

#10


错误信息是什么

#11


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

#12


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

#13


楼上的方法很对,用临时表。

如果您不想在数据库端完成,也可以在Query中用字算字段来做,把计算字段的值赋值为RecNo。

#14


up

#15


我一直也是用临时表
这是曾经写的一个例子:
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;

以上测试通过的。

据说微软公开一个函数,可以实现这个功能,但具体不清楚。

#16


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

#17


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

#18


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

#19


一样的

#20


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

自己顶!!!!!! 

#21


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

#22


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