用sql语句查找一个字段值存在于哪张表,该怎么写SQL语句?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用sql语句查找一个字段值存在于哪张表,该怎么写SQL语句?相关的知识,希望对你有一定的参考价值。
这需要用存储过程来实现,基本方法如下,比如查找全库中所有字段值为“张三”的属于哪张表,可用如下方法:
declare @cloumns varchar(40)declare @tablename varchar(40)
declare @str varchar(40)
declare @counts int
declare @sql nvarchar(2000)
declare MyCursor Cursor For
Select a.name as Columns, b.name as TableName from syscolumns a,sysobjects b,systypes c
where a.id = b.id
and b.type = \'U\'
and a.xtype=c.xtype
and c.name like \'%char%\'
set @str=\'张三\'
Open MyCursor
Fetch next From MyCursor Into @cloumns,@tablename
While(@@Fetch_Status = 0)
Begin
set @sql=\'select @tmp_counts=count(*) from \' +@tablename+ \' where \' +@cloumns+\' = \'\'\' +@str+ \'\'\'\'
execute sp_executesql @sql,N\'@tmp_counts int out\',@counts out
if @counts>0
begin
print \'表名为:\'+@tablename+\',字段名为\'+@cloumns
end
Fetch next From MyCursor Into @cloumns,@tablename
End
Close MyCursor
Deallocate MyCursor
结果如图:
显示的就是含有张三这个内容的表名及字段名
http://hi.baidu.com/wangzhiqing999/blog/item/f4a8456659df8fd2e6113a0d.html
请勿在 生产数据库上使用.本回答被提问者采纳 参考技术B 楼上~~反了吧
UPDATE table SET newcol = oldcol
参考资料:百度一下
参考技术C T newcol = oldcol 参考技术D 这个不同的数据库是不同的两个表匹配,匹配上把一张表的值复制到另一张表的sql语句怎么写
A 表
NUM VALUE1 VALUE2
123000 测试1 测试2
123001 测试3 测试4
123002 测试5 测试6
123003 测试7 测试8
B 表
NO VALUE3 VALUE4
12300024222 测试1 测试2
12300346433 测试7 测试8
12300268675 测试5 测试6
12300087538 测试1 测试2
有这样两张表,A和B,现在需要将B表中NO字段的值跟A表的NUM字段对比,如果B表的NO的字段包含了A表的某一行的NUM的值,则将A表这一行的VALUE1和VALUE2的值复制到B表的VALUE3和VALUE4中。
A表和B表的数据量都比较大,以上只是示例。
请问sql语句怎么写?
补充一句,这个是mysql语法追问
B.NO和A.NUM这两个是不会等于的啊
B表的NO字符比A表的MUN字符要多,B.NO包含在A.NUM中
那你改一下where条件就好了啊
where B.NO LIKE CONCAT('%',A.NUM,'%');
以上是关于用sql语句查找一个字段值存在于哪张表,该怎么写SQL语句?的主要内容,如果未能解决你的问题,请参考以下文章
用sql语句查找某一行的一个值并返回那个值,怎么写? 请将详细点 ,谢谢
两个表匹配,匹配上把一张表的值复制到另一张表的sql语句怎么写