select 'BH' + right('00' + convert(varchar, convert(int, right(MAX(col1), 3)) + 1), 3) from (
select 'BH001' col1
union all
select 'BH002' col1
union all
select 'BH003' col1
) aa
#2
SQL语句修正,如果表中没记录,自动生成BH001。
select 'BH' + case when MAX(col1) IS not null then right('00' + convert(varchar, convert(int, right(MAX(col1), 3)) + 1), 3) else '001' end from (
select 'BH001' col1
union all
select 'BH002' col1
union all
select 'BH003' col1
) aa
var S:string;
L,J:integer;
begin
SQL:='select 主键名 from 表名';
// 通过相关控件打印数据库 表 ......
with DataSet do
begin
J:=0;
while Not Eof do
begin
S:=FieldByName('主键名').AsString;
S:=Copy(3,3);
L:=StrToInt(S);
if j<L then J:=L;
Next;
end;
end;
S:=Inttostr(J+1);
while Length(S)<3 do S:='0'+S;
S:='BH'+S;
end;
上述代码非常实用,我就是这样获取不同值有序“编码”的。仅供参考。
#6
var S:string;
L,J:integer;
begin
SQL:='select 主键名 from 表名';
// 通过相关控件打印数据库 表 ......
with DataSet do
begin
J:=0;
while Not Eof do
begin
S:=FieldByName('主键名').AsString;
S:=Copy(3,3);
L:=StrToInt(S);
if j<L then J:=L;
Next;
end;
end;
S:=Inttostr(J+1);
while Length(S)<3 do S:='0'+S;
S:='BH'+S;
end;
上述代码非常实用,我就是这样获取不同值有序“编码”的。仅供参考。
var S:string;
L,J:integer;
begin
SQL:='select 主键名 from 表名';
// 通过相关控件打印数据库 表 ......
with DataSet do
begin
J:=0;
while Not Eof do
begin
S:=FieldByName('主键名').AsString;
S:=Copy(3,3);
L:=StrToInt(S);
if j<L then J:=L;
Next;
end;
end;
S:=Inttostr(J+1);
while Length(S)<3 do S:='0'+S;
S:='BH'+S;
end;
上述代码非常实用,我就是这样获取不同值有序“编码”的。仅供参考。
不好意思表述不清。。。我是想获取数据库里最新的编号,好往数据库里插入新数据。
#7
SQL语句修正,如果表中没记录,自动生成BH001。
select 'BH' + case when MAX(col1) IS not null then right('00' + convert(varchar, convert(int, right(MAX(col1), 3)) + 1), 3) else '001' end from (
select 'BH001' col1
union all
select 'BH002' col1
union all
select 'BH003' col1
) aa
select 'BH' + case when MAX(col1) IS not null then right('00' + convert(varchar, convert(int, right(MAX(col1), 3)) + 1), 3) else '001' end from (
select 'BH001' col1
union all
select 'BH002' col1
union all
select 'BH003' col1
) aa
select 'BH' + right('00' + convert(varchar, convert(int, right(MAX(col1), 3)) + 1), 3) from (
select 'BH001' col1
union all
select 'BH002' col1
union all
select 'BH003' col1
) aa
#2
SQL语句修正,如果表中没记录,自动生成BH001。
select 'BH' + case when MAX(col1) IS not null then right('00' + convert(varchar, convert(int, right(MAX(col1), 3)) + 1), 3) else '001' end from (
select 'BH001' col1
union all
select 'BH002' col1
union all
select 'BH003' col1
) aa
#3
SQL语句修正,如果表中没记录,自动生成BH001。
select 'BH' + case when MAX(col1) IS not null then right('00' + convert(varchar, convert(int, right(MAX(col1), 3)) + 1), 3) else '001' end from (
select 'BH001' col1
union all
select 'BH002' col1
union all
select 'BH003' col1
) aa
没有锁表么?如果2个请求同时,会重复吧?
#4
SQL语句修正,如果表中没记录,自动生成BH001。
select 'BH' + case when MAX(col1) IS not null then right('00' + convert(varchar, convert(int, right(MAX(col1), 3)) + 1), 3) else '001' end from (
select 'BH001' col1
union all
select 'BH002' col1
union all
select 'BH003' col1
) aa
var S:string;
L,J:integer;
begin
SQL:='select 主键名 from 表名';
// 通过相关控件打印数据库 表 ......
with DataSet do
begin
J:=0;
while Not Eof do
begin
S:=FieldByName('主键名').AsString;
S:=Copy(3,3);
L:=StrToInt(S);
if j<L then J:=L;
Next;
end;
end;
S:=Inttostr(J+1);
while Length(S)<3 do S:='0'+S;
S:='BH'+S;
end;
上述代码非常实用,我就是这样获取不同值有序“编码”的。仅供参考。
#6
var S:string;
L,J:integer;
begin
SQL:='select 主键名 from 表名';
// 通过相关控件打印数据库 表 ......
with DataSet do
begin
J:=0;
while Not Eof do
begin
S:=FieldByName('主键名').AsString;
S:=Copy(3,3);
L:=StrToInt(S);
if j<L then J:=L;
Next;
end;
end;
S:=Inttostr(J+1);
while Length(S)<3 do S:='0'+S;
S:='BH'+S;
end;
上述代码非常实用,我就是这样获取不同值有序“编码”的。仅供参考。
var S:string;
L,J:integer;
begin
SQL:='select 主键名 from 表名';
// 通过相关控件打印数据库 表 ......
with DataSet do
begin
J:=0;
while Not Eof do
begin
S:=FieldByName('主键名').AsString;
S:=Copy(3,3);
L:=StrToInt(S);
if j<L then J:=L;
Next;
end;
end;
S:=Inttostr(J+1);
while Length(S)<3 do S:='0'+S;
S:='BH'+S;
end;
上述代码非常实用,我就是这样获取不同值有序“编码”的。仅供参考。
不好意思表述不清。。。我是想获取数据库里最新的编号,好往数据库里插入新数据。
#7
SQL语句修正,如果表中没记录,自动生成BH001。
select 'BH' + case when MAX(col1) IS not null then right('00' + convert(varchar, convert(int, right(MAX(col1), 3)) + 1), 3) else '001' end from (
select 'BH001' col1
union all
select 'BH002' col1
union all
select 'BH003' col1
) aa
select 'BH' + case when MAX(col1) IS not null then right('00' + convert(varchar, convert(int, right(MAX(col1), 3)) + 1), 3) else '001' end from (
select 'BH001' col1
union all
select 'BH002' col1
union all
select 'BH003' col1
) aa