查询表的字段,做处理后,再update当前表

mmkkuoi 2012-04-21 09:36:31
例如:
update table set name=(select SUBSTRING(name,9,Len(name)) from table)
这样提示:
子查询返回的值不止一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。
语句已终止。
...全文
131 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
百年树人 2012-04-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
try
SQL code
update table set name=SUBSTRING(name,9,Len(name)-9)
[/Quote]
应该是减8才对,但是如果该值如果没有超过9个字符,则会变为空字符
update table set name=SUBSTRING(name,9,Len(name)-8)
百年树人 2012-04-21
  • 打赏
  • 举报
回复
try
update table set name=SUBSTRING(name,9,Len(name)-9) 
莫凯2 2012-04-21
  • 打赏
  • 举报
回复
Len(name)不是属性吗?不是应该放在where里吗
wxwlll 2012-04-21
  • 打赏
  • 举报
回复
update table set name=(select SUBSTRING(name,9,Len(name)) from table)中
的(select SUBSTRING(name,9,Len(name)) from table)
这条语句返回的值是多个不是单个值。
你这里可以在子查询中继续用where子句对投影的属性进行约束,使子查询的返回值为单值!
百年树人 2012-04-21
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
肯能是我描述有误,我是有100条数据要从本身的name取出值,修改,在放回本身
[/Quote]

备份一下你的数据库,用我2楼给的语句试试就知道了
mmkkuoi 2012-04-21
  • 打赏
  • 举报
回复
肯能是我描述有误,我是有100条数据要从本身的name取出值,修改,在放回本身

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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