SQL字符截取问题

anshengcs 2012-05-14 07:30:51
a表
xg sx#
102 10010002

b表
gg s#
1 10010002

要的结果是
A表sx#和B表的S#对比,截取B表sx#的前3位+0+A表xg

结果
b表
gg s#
10010102 10010002


...全文
124 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
houyajin 2012-05-14
  • 打赏
  • 举报
回复

select left(ltrim(b.s#),3)+'0'+ltrim(a.xg) as gg,a.sx# as s#
from a,b
where a.sx#=b.s#
cccccccccccc 2012-05-14
  • 打赏
  • 举报
回复
update b
set gg =left(ltrim(b.sx#),3)+'0'+ltrim(a.xg) from a a where a.sx#=b.sx#
tim_spac_126 2012-05-14
  • 打赏
  • 举报
回复
select
gg, [s#] = left(b.[sx#],3)+'0'+cast(a.xg as varchar)
B表sx#的前3位+0+A表xg
from a, b
where a.[sx#] = b.[s#]
孤独加百列 2012-05-14
  • 打赏
  • 举报
回复
LZ 的结果是要取sx#的前四位吧,否则结果怎么是10010而不是1000呢?

update b表
set gg =left(b.sx#,3)+'0'+a.xg from a表 a where a.sx#=b.sx#

又或者是sx#的前三位+gg+0+A表xg

set gg =left(b.sx#,3)+ CAST(gg AS VARCHAR(10)) +'0'+a.xg from a表 a where a.sx#=b.sx#
  • 打赏
  • 举报
回复

update b表
set gg =left(ltrim(b.sx#),3)+'0'+ltrim(a.xg) from a表 a where a.sx#=b.sx#
  • 打赏
  • 举报
回复

update b表
set gg =left(b.sx#,3)+'0'+a.xg from a表 a where a.sx#=b.sx#
xptking 2012-05-14
  • 打赏
  • 举报
回复
select left(b.sx#,3)+'0'+a.xg as gg,a.sx# as s#
from a,b
where a.sx#=b.s#
anshengcs 2012-05-14
  • 打赏
  • 举报
回复
问题已解决,谢谢大家

34,590

社区成员

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

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