请教SQL语句,在线等待。(50分)

  • 主题发起人 主题发起人 protagonist
  • 开始时间 开始时间
P

protagonist

Unregistered / Unconfirmed
GUEST, unregistred user!
insert Table1 select bbb form Table2
bbb在Table2中是1110
插到Table1中要是00001110
这个bbb该怎么写?
 
insert Table1 select '0000'+bbb form Table2
 
to wwr74
bbb我是举例1110
也会是1,
11,
111,
1111,
11111,就是最大8位。
就是不足8位前面补0
 
好像有format或者是formatstring函数
 
to naughtboy
Format和formatstring的函数的帮助文件我看了,水平有限,没看懂。
 
写起来较麻烦
select substring('000000000'+bbb,datalength('000000000'+bbb)-7,8)
具体7,8安情况时时
 
to 一生中最爱
我做做测试。
 
inesrt table1 select replicate('0',8-len(bbb))+bbb from Table2
 
多少找数据库相关函数,插入后改也可以的。

inesrt table1 select replicate('0',8-len(bbb))+bbb as AAA from Table2
---Table1 中相应字段名
 
试试这个函数
function FormatStr(str : string;len : Integer) : string;
var
i:integer;
tmp:string;
begin
for i:=0 to (len-length(str)-1) do
tmp:=tmp+'0';
Result:=tmp+str;
end;
str为将要格式化的字符串,len为要求的长度
 
inesrt table1 select replicate('0',8-len(bbb))+bbb as AAA from Table2
 
INSERT Table1 SELECT RIGHT('00000000'+bbb,8) FROM Table2

如果字段BBB不为字符型,则用convert(nvarchar,bbb)转换一下:
INSERT Table1 SELECT RIGHT('00000000'+CONVERT(NVARCHAR,bbb),8) FROM Table2
 
to 一生中最爱
运行的结果是空的。
to xuxincheng
函数的返回值是正确的,但是要在SQL语句里完成所以用不上。
to qianwt,jsxjd,landsky,sdhxdjw
正确,再次谢谢。
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
446
import
I
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部