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
仿照别人的,赫赫
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;
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);
这也该算是答案吧!
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
仿照别人的,赫赫
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。
如果您不想在数据库端完成,也可以在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;
以上测试通过的。
据说微软公开一个函数,可以实现这个功能,但具体不清楚。
这是曾经写的一个例子:
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;
你试一下
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
仿照别人的,赫赫
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;
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);
这也该算是答案吧!
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
仿照别人的,赫赫
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。
如果您不想在数据库端完成,也可以在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;
以上测试通过的。
据说微软公开一个函数,可以实现这个功能,但具体不清楚。
这是曾经写的一个例子:
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;
你试一下
adoquery1.sql.clear;
adoquery1.sql.add('select GoodsCode,Name,
IDENTITY(int,1,1) as 序号 ');
adoquery1.sql.add('order by 序号 ASC');
adoquery1.open;
你试一下