关于update用法

satanail 2010-01-12 04:47:40
小弟分值不多,太少别见怪

现在想更新 表 kkk

update kkk
set kkk00 ='2010'+substring(kkk01,1,8)+'01'
where a.baza01 = b.baza01


select a.* from kkk a, server.master.dbo.qqq b
where a.kkk00=b.kkk00 COLLATE french_CI_AS) b


有以上两个操作
现在想利用 第二个操作所得的数据结果中的kkk00列与kkk表进行关联
然后更新表kkk中的kkk00,更新方法如第一个操作,请问这个关联我该如何去做????

顺便还想问下sql基础问题 字符串 2008我要向在前边和后便加 '这个该如何写? '''这样写肯定不行呀??

请高手赐教赐教呀~~~
膜拜中。。。。。。。。
...全文
745 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
dawugui 2010-01-12
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 satanail 的回复:]
引用 5 楼 dawugui 的回复:
引用 4 楼 satanail 的回复:
引用 1 楼 sql77 的回复:
SQL codeupdate Aset kkk00='2010'+substring(kkk01,1,8)+'01'FROM KKK A,
server.master.dbo.qqq bwhere a.kkk00=b.kkk00 COLLATE french_CI_AS


这样做会报列名kkk01不明确

你想用哪个表的?
如下两个自己选个.
SQL codeupdate kkkset kkk00='2010'+substring(a.kkk01,1,8)+'01'from kkk a , server.master.dbo.qqq bwhere  a.baza01= b.baza01update kkkset kkk00='2010'+substring(b.kkk01,1,8)+'01'from kkk a , server.master.dbo.qqq bwhere  a.baza01= b.baza01



十分感谢您的帮助,问题已经解决啦
还有个白痴的问题请教下,
在用select 差结果的时候我想得到 '2008'这样的数据,我该怎么添加这个'?
[/Quote]
是条件?

select a.* from kkk a, server.master.dbo.qqq b
where a.kkk00=b.kkk00 and 哪个字段 = '2008'

select a.* from kkk a, server.master.dbo.qqq b
where a.kkk00=b.kkk00 and 哪个字段 like '%2008%'

还是显示?


select '2008' , a.* from kkk a, server.master.dbo.qqq b
where a.kkk00=b.kkk00

SQL77 2010-01-12
  • 打赏
  • 举报
回复
update A
set kkk00 ='2010'+substring(A.kkk01,1,8)+'01'
FROM KKK A,
server.master.dbo.qqq b
where a.kkk00=b.kkk00 COLLATE french_CI_AS


加个确定一下是哪个就好了
satanail 2010-01-12
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 pt1314917 的回复:]
引用 6 楼 satanail 的回复:
引用 5 楼 dawugui 的回复:
引用 4 楼 satanail 的回复:
引用 1 楼 sql77 的回复:
SQL codeupdate Aset kkk00='2010'+substring(kkk01,1,8)+'01'FROM KKK A,
server.master.dbo.qqq bwhere a.kkk00=b.kkk00 COLLATE french_CI_AS


这样做会报列名kkk01不明确

你想用哪个表的?
如下两个自己选个.
SQL codeupdate kkkset kkk00='2010'+substring(a.kkk01,1,8)+'01'from kkk a , server.master.dbo.qqq bwhere  a.baza01= b.baza01update kkkset kkk00='2010'+substring(b.kkk01,1,8)+'01'from kkk a , server.master.dbo.qqq bwhere  a.baza01= b.baza01


十分感谢您的帮助,问题已经解决啦
还有个白痴的问题请教下,
在用select 差结果的时候我想得到 '2008'这样的数据,我该怎么添加这个'?


SQL code--这样?select'2008',a.*from kkk a, server.master.dbo.qqq bwhere a.kkk00=b.kkk00 COLLATE french_CI_AS) b
[/Quote]


谢谢 我想要的是在用select 查询的结果中,一列数值,我想把每行的值都加上引号,例如
原值 现在结果
2008 ’2008‘
1354 ’1354‘
5467 ’5467‘
2313 ’2313‘
pt1314917 2010-01-12
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 satanail 的回复:]
引用 5 楼 dawugui 的回复:
引用 4 楼 satanail 的回复:
引用 1 楼 sql77 的回复:
SQL codeupdate Aset kkk00='2010'+substring(kkk01,1,8)+'01'FROM KKK A,
server.master.dbo.qqq bwhere a.kkk00=b.kkk00 COLLATE french_CI_AS


这样做会报列名kkk01不明确

你想用哪个表的?
如下两个自己选个.
SQL codeupdate kkkset kkk00='2010'+substring(a.kkk01,1,8)+'01'from kkk a , server.master.dbo.qqq bwhere  a.baza01= b.baza01update kkkset kkk00='2010'+substring(b.kkk01,1,8)+'01'from kkk a , server.master.dbo.qqq bwhere  a.baza01= b.baza01



十分感谢您的帮助,问题已经解决啦
还有个白痴的问题请教下,
在用select 差结果的时候我想得到 '2008'这样的数据,我该怎么添加这个'?
[/Quote]


--这样?
select '2008',a.* from kkk a, server.master.dbo.qqq b
where a.kkk00=b.kkk00 COLLATE french_CI_AS) b
Joke_yu 2010-01-12
  • 打赏
  • 举报
回复
like '2008%'
satanail 2010-01-12
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 dawugui 的回复:]
引用 4 楼 satanail 的回复:
引用 1 楼 sql77 的回复:
SQL codeupdate Aset kkk00='2010'+substring(kkk01,1,8)+'01'FROM KKK A,
server.master.dbo.qqq bwhere a.kkk00=b.kkk00 COLLATE french_CI_AS


这样做会报列名kkk01不明确

你想用哪个表的?
如下两个自己选个.
SQL codeupdate kkkset kkk00='2010'+substring(a.kkk01,1,8)+'01'from kkk a , server.master.dbo.qqq bwhere a.baza01= b.baza01update kkkset kkk00='2010'+substring(b.kkk01,1,8)+'01'from kkk a , server.master.dbo.qqq bwhere a.baza01= b.baza01
[/Quote]


十分感谢您的帮助,问题已经解决啦
还有个白痴的问题请教下,
在用select 差结果的时候我想得到 '2008'这样的数据,我该怎么添加这个'?
dawugui 2010-01-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 satanail 的回复:]
引用 1 楼 sql77 的回复:
SQL codeupdate Aset kkk00='2010'+substring(kkk01,1,8)+'01'FROM KKK A,
server.master.dbo.qqq bwhere a.kkk00=b.kkk00 COLLATE french_CI_AS


这样做会报列名kkk01不明确
[/Quote]
你想用哪个表的?
如下两个自己选个.
update kkk 
set kkk00 ='2010'+substring(a.kkk01,1,8)+'01'
from kkk a , server.master.dbo.qqq b
where a.baza01 = b.baza01

update kkk
set kkk00 ='2010'+substring(b.kkk01,1,8)+'01'
from kkk a , server.master.dbo.qqq b
where a.baza01 = b.baza01
satanail 2010-01-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sql77 的回复:]
SQL codeupdate Aset kkk00='2010'+substring(kkk01,1,8)+'01'FROM KKK A,
server.master.dbo.qqq bwhere a.kkk00=b.kkk00 COLLATE french_CI_AS
[/Quote]

这样做会报列名kkk01不明确
jack15850798154 2010-01-12
  • 打赏
  • 举报
回复
学习中。。。顶
dawugui 2010-01-12
  • 打赏
  • 举报
回复
update kkk
set kkk00 ='2010'+substring(kkk01,1,8)+'01'
from kkk a , server.master.dbo.qqq b
where a.baza01 = b.baza01
SQL77 2010-01-12
  • 打赏
  • 举报
回复
update A
set kkk00 ='2010'+substring(kkk01,1,8)+'01'
FROM KKK A,
server.master.dbo.qqq b
where a.kkk00=b.kkk00 COLLATE french_CI_AS

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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