+ -
当前位置:首页 → 问答吧 → sql 求字符串长度 不够自动补空格

sql 求字符串长度 不够自动补空格

时间:2011-10-19

来源:互联网

某一个字符字段列设置为10位
但实际上一般输入8位
怎么能让后2位自动补成空格
我在程序中读取的时候读取的是有空格的值
例如
字段值为 12345678
读取的值为 12345678##
##代表空格
字段类型设置为char还是varchar 
用什么函数可以做到这个功能


作者: liyangfd   发布时间: 2011-10-19

replicate???

作者: jwdream2008   发布时间: 2011-10-19

varchar字段

ltrim函数。

作者: fredrickhu   发布时间: 2011-10-19

可能是我没有描述清楚我想要得结果是
设置为10位
数据库存 12345678
但是读取出得结果是 10位的 在右侧自动补空格

12345678## 想要的事这个结果

作者: liyangfd   发布时间: 2011-10-19

自己写个函数处理吧。

作者: gogodiy   发布时间: 2011-10-19

SQL code

--直接字段类型设置为char(10),输入'12345678'后好像就自动补2个空格的,LZ可以试试
--要么就varchar(10)
select right('12345678'+'##########',10)
--ps:#代表空格,'12345678'代表你的输入,思路就是你输入的值后面加10个空格,然后取最右边10位

作者: geniuswjt   发布时间: 2011-10-19

SQL code


select left(ltrim(12345678)+'##########',10)

/*
--------------------
12345678##

(1 行受影响)


*/



如果你输入的数据大雨10位呢,该是怎样的情况?

作者: jiemo587   发布时间: 2011-10-19

写错,left
引用 5 楼 geniuswjt 的回复:
SQL code

--直接字段类型设置为char(10),输入'12345678'后好像就自动补2个空格的,LZ可以试试
--要么就varchar(10)
select right('12345678'+'##########',10)
--ps:#代表空格,'12345678'代表你的输入,思路就是你输入的值后面加10个空格,然后取最右边10位

作者: geniuswjt   发布时间: 2011-10-19

MSSQL没有 rpad函数 但是可以自己写一个

作者: lxpbs8851   发布时间: 2011-10-19

SQL code

create function rpad(@source varchar(1000),@lenth int,@fill varchar(1))
returns varchar(2000)
as
begin
   delcare @cnt int
   set @cnt =@lenth-len(@source)    
   if(@cnt<=0)
   begin
     return @source
   end 
   else
   begin
    while(@cnt>0)
      set @source=@source+@fill
      set @cnt=@cnt-1
    end
    return @source
   end
end


select rpad([字段],10,' ') from tablename

作者: lxpbs8851   发布时间: 2011-10-19

SQL code


select right('12345678'+'##########',10)


作者: qqzhengwei   发布时间: 2011-10-19

引用 6 楼 jiemo587 的回复:
SQL code


select left(ltrim(12345678)+'##########',10)

/*
--------------------
12345678##

(1 行受影响)


*/


如果是字母或数字的话 这个没有问题
如果有汉字的话怎么办 一个汉字占2个字节的

作者: liyangfd   发布时间: 2011-11-10

字段类型设置为char(10),系统自动在右侧补空格

作者: pengxuan   发布时间: 2011-11-10

考虑下汉字 一个汉字在数据库中只占了一个字节

作者: liyangfd   发布时间: 2011-11-10

引用 12 楼 pengxuan 的回复:

字段类型设置为char(10),系统自动在右侧补空格

作者: royal_cry   发布时间: 2011-11-10

热门下载

更多