字符串前加空格 ( 积分: 100 )

  • 主题发起人 主题发起人 baby2321
  • 开始时间 开始时间
B

baby2321

Unregistered / Unconfirmed
GUEST, unregistred user!
字符串前加空格<br>有整数型字段&nbsp;LEVEL&nbsp;int&nbsp;&nbsp;&nbsp;&nbsp;字符串型字段&nbsp;NAME&nbsp;string<br>LEVEL&nbsp;&nbsp;&nbsp;NAME<br>1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A<br>2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;B<br>3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C<br>4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;D<br>5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;E<br><br>如何在NAME字段前加空格&nbsp;空格的多少和LEVEL挂钩<br>即A的LEVEL是1&nbsp;那么A前加一个空格&nbsp;B的LEVEL是2&nbsp;那么B前加两个空格<br>C的LEVEL是3&nbsp;则C前加三个空格?
 
SELECT&nbsp;right('&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'+NAME,len(NAME)+LEVEL)&nbsp;AS&nbsp;NAME&nbsp;FROM&nbsp;T
 
如果是oracle&nbsp;<br>select&nbsp;lpad(name,5-level,'&nbsp;')&nbsp;……
 
如果是在MSSQL数据库可以用SQL语句就行:<br>SELECT&nbsp;ID,&nbsp;REPLICATE('&nbsp;',&nbsp;5&nbsp;-&nbsp;LEN(字段))&nbsp;+&nbsp;CAST(字段&nbsp;AS&nbsp;VARCHAR)&nbsp;AS&nbsp;字段&nbsp;FROM&nbsp;表<br><br>如果是在DELPHI里就用这个函数:<br>function&nbsp;GetNullLen(Str:String;&nbsp;Len:Integer):String;<br>var<br>&nbsp;&nbsp;S:String;<br>&nbsp;&nbsp;i:integer;<br>begin<br>&nbsp;&nbsp;if&nbsp;Length(Str)&gt;=Len&nbsp;then<br>&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;result:=Str;<br>&nbsp;&nbsp;&nbsp;&nbsp;exit;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;S:=Str;<br>&nbsp;&nbsp;for&nbsp;i:=1&nbsp;to&nbsp;Length(Str)&nbsp;do<br>&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;Length(S)&gt;=Len&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Break;<br>&nbsp;&nbsp;&nbsp;&nbsp;S:=S&nbsp;+&nbsp;'&nbsp;';<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;result:=s;<br>end;
 
个人觉得xinjinren的方案最快&nbsp;<br>谢谢大家
 
再次谢谢xinjinren&nbsp;&nbsp;bbscom和boy2002cn
 
后退
顶部