--e.g. declare @str nvarchar(100) set @str=' a b ' select rtrim(@str) --去右边空格结果是' a b' select ltrim(@str) --去左边空格结果是'a b ' select rtrim(ltrim(@str)) --去头尾空格结果是'a b' select replace(@str,' ','') --去所有空格结果是'ab'
SELECT ShopNO,Name,ltrim(rtrim(Address)) As Address1,Pop3 FROM etam.dbo.etamshop 只能去掉字段中的前后空格,不能去掉中间的空格!
gmlxf(烛光) 楼上的你说的函数我都知道 可是在我这根本不起作用阿 真的是一个很奇怪的问题
你后面的空格会不会是其他符号 --tryselect replace(replace(col,char(10),''),char(13),'') from ( select 'a' + char(10) + char(10) + 'b' col ) a
我就是要去掉后面的空格阿 我的问题说得这么不清除么在查询分析器,我用下面的语句 declare @str11 as nvarchar(50) SELECT @str11=rtrim(Address) FROM etam.dbo.etamshop where Shopno='813' set @str11 =rtrim (@str11) select @str11 select len(rtrim(@str11))显示结果: 兰州市七里河小西湖广场义乌商贸城旁 27
declare @str11 as nvarchar(50) SELECT @str11=rtrim(replace(replace(Address,char(10),''),char(13),'')) FROM etam.dbo.etamshop where Shopno='813' set @str11 =rtrim (@str11) select @str11 select len(rtrim(@str11))这样以后,长度短了一些,不过好像还有别的字符 谢谢gmlxf(烛光) 等我问一下我那个同事,就应该知道是怎么一回事了
select ascii(right(col,1)) asc码 from etam.dbo.etamshop where Shopno='813' 你看看是什么数字? 是空格吗?空格是32
我打开那个数据库,没看到什么特殊的字符 -------- 是看不到的 不过你在查询分析器里面可以看到的 你先按ctrl+t 然后执行: select Address from etam.dbo.etamshop where Shopno='813'
是:10select ascii(right(Address,1)) asc码 from etam.dbo.etamshop where Shopno='813' 结果显示:10
但是很奇怪阿
rtrim没有起作用当我直接在数据库中把空格散掉后,才好使的阿
declare @str nvarchar(100)
set @str=' a b '
select rtrim(@str) --去右边空格结果是' a b'
select ltrim(@str) --去左边空格结果是'a b '
select rtrim(ltrim(@str)) --去头尾空格结果是'a b'
select replace(@str,' ','') --去所有空格结果是'ab'
只能去掉字段中的前后空格,不能去掉中间的空格!
楼上的你说的函数我都知道
可是在我这根本不起作用阿
真的是一个很奇怪的问题
--tryselect replace(replace(col,char(10),''),char(13),'') from
(
select 'a' + char(10) + char(10) + 'b' col
) a
我的问题说得这么不清除么在查询分析器,我用下面的语句
declare @str11 as nvarchar(50)
SELECT @str11=rtrim(Address) FROM etam.dbo.etamshop where Shopno='813'
set @str11 =rtrim (@str11)
select @str11
select len(rtrim(@str11))显示结果:
兰州市七里河小西湖广场义乌商贸城旁
27
char(13)
你看看。
可能你说的有道理因为我去的数据,是别的数据库中的内容,我不清楚她添加记录时是什么样的一种情况我打开那个数据库,没看到什么特殊的字符
SELECT @str11=rtrim(replace(replace(Address,char(10),''),char(13),'')) FROM etam.dbo.etamshop where Shopno='813'
set @str11 =rtrim (@str11)
select @str11
select len(rtrim(@str11))这样以后,长度短了一些,不过好像还有别的字符
谢谢gmlxf(烛光)
等我问一下我那个同事,就应该知道是怎么一回事了
你看看是什么数字?
是空格吗?空格是32
--------
是看不到的
不过你在查询分析器里面可以看到的
你先按ctrl+t
然后执行:
select Address from etam.dbo.etamshop where Shopno='813'
--------------------------------------------------
兰州市七里河小西湖广场义乌商贸城旁 安你的方法,上面是显示结果,没什么特别的阿
里面有好多换行符,还有制表符(9,10,13)
号奇怪啊,里面还有这样的东西
为了简单,你可以将你的address里面的换行回车符号替换掉。
长度就对了
谢谢你--gmlxf(烛光)
按ctrl+t
然后
select Address + '---' from etam.dbo.etamshop where Shopno='813'
这样应该都可以看出那样字符了,如果---不是紧接在后面,那就不正常的。