关于去空格和rowid的问题

yjjpan 2005-09-11 05:41:57
问题一:sqlserver中,为什么用ltrim,rtrim去不掉空格?我用len(),求长度的时候,确实比实际长度多2位,但用ltrim和rtrim却去不掉多余的两位,请高手指教
问题二:sqlserver中,有没有类似oracle中的rowid这样的伪列
急呀,给分100
...全文
230 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
iwl 2005-09-11
  • 打赏
  • 举报
回复
问题一: ltrim,rtrim只是去掉前后的空格,如果用len测试长度,如果里面有中文字符或全角就会不准确,建议用DATALENGTH. 同时也可以试一下 zlp321002(想在北京找份工作!)的方法。

问题二:sqlserver中,没有类似oracle中的rowid这样的伪列,而sql server的identity(datatype,seed,increment)是不一样的,identity是一个自动增长的属性。
MorningTea 2005-09-11
  • 打赏
  • 举报
回复
问题一:sqlserver中,为什么用ltrim,rtrim去不掉空格?我用len(),求长度的时候,确实比实际长度多2位,但用ltrim和rtrim却去不掉多余的两位,请高手指教

--估计里面有控制字符,例如tab,enter键
select convert(varbinary(20),字段) from Table看看

问题二:sqlserver中,有没有类似oracle中的rowid这样的伪列
急呀,给分100

--没有,sql server没有这样的列标示,而sql server的identity(datatype,seed,increment)是不一样的
zlp321002 2005-09-11
  • 打赏
  • 举报
回复
--问题2:
rowid 是不是 SQL中得 Newid(),还是一个标识列? Identity(int,1,1)
zlp321002 2005-09-11
  • 打赏
  • 举报
回复
--你可以这样试试
select replace(字段,char(13)+char(10),'') from 表
filebat 2005-09-11
  • 打赏
  • 举报
回复
会不会是你的数据类型用的是char(n)而不是varchar(n)?
btw, sqlserver中有一个计算列的概念.

你将具体表结构和需求说一下吧.

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧