SQL同在一个表的一字段等一另一字段的语句怎么写

两字段同在一表。让A的值等于B的值,两表的数据类型不一样,不过对数值没影响。以下这样写就提示错误,直接字段等于字段UPDATE表名SETA=BWHERE(C=C)正确的是... 两字段同在一表。让A的值等于B的值,两表的数据类型不一样,不过对数值没影响。以下这样写就提示错误,直接字段等于字段 UPDATE 表名SET A=B
WHERE (C=C) 正确的是怎么写呢????
展开
 我来答
匿名用户
2013-07-13
展开全部
这是一个查询所有表中所有字段里面包含“a”的语句,你改一下,将执行结果变成一个动态sql,就可以用了。SELECT a.name AS columnname,object_name(a.id)AS tablename INTO t FROM syscolumns a,sysobjects b,systypes cWHERE a.id=b.id AND a.xtype=c.xtypeAND b.xtype='u'AND c.name IN('varchar','nvarchar','char','nchar','text','ntext')AND object_name(a.id)<>'t'go
CREATE FUNCTION udf_genSQL(@tableName varchar(1000),@keyword varchar(1000))returns varchar(8000)ASbegindeclare @sql varchar(8000)SET @sql='select * from '+@tableName +' where 1=1 'SELECT @sql=@sql+' or '+columnname +' like ''%'+@keyword+'%''' FROM tWHERE tablename=@tablenameRETURN @sqlendgo
SELECT dbo.udf_genSQL(tableName,'a') FROM t GROUP BY tablenameDROP TABLE tDROP FUNCTION dbo.udf_genSQL
回答人的补充 2009-11-14 11:47 如果你将第一部分改为下面的语句,可以查找出所有包含这三个字段之一的所有表和字段:SELECT a.name AS columnname,object_name(a.id)AS tablename FROM syscolumns a,
sysobjects b,
systypes c
WHERE a.id=b.id
AND a.xtype=c.xtype
AND b.xtype='u'
AND object_name(a.id)<>'t'
and (a.name = 'matid' or a.name ='ModelID' or a.name = 'ColorID')
匿名用户
2013-07-13
展开全部
子查询写吧update 表名 set A=(select * from 表名 where C=C)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-07-13
展开全部
update 表名 set A=(select B from 表名 where C=C)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-07-13
展开全部
declare @t table ( id int, a int, b nchar(5) )
insert @t
select 1, 123, 'x' union
select 2, 456, 'x' union
select 3, 789, 'x' union
select 4, 333, 'x'

select * from @t

update t1 set t1.b = t2.a from @t as t1 inner join @t as t2 on t1.id = t2.id;

select * from @t;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式