一个列的值作为一个表名进行sql查询

来源:百度知道 编辑:UC知道 时间:2024/06/17 03:13:26
A表记录中的一个字段的值,存放的是B表的表名
如何能把这个值转换为B表查询的真实表名?例如:
select * from “A表记录中的一个字段的值(B表表名)”
谢谢! 不能用存储过程哦,可以用函数。前面一定要是select* from 后面怎么转化看大家了 ,我想了一天也没想到好办法
不是用动态sql哦 视图是事先不了的啦 因为显示的只是表名 而不是表里面的列哦

不是很清楚你的意思 推测你的意思有两种可能性:
1.A表中的一个属性所对应的一个元组的值 并且这个值与B表表名相等 你想把它转化B表的表名 貌似这样做没意义 如果想查B表里的内容直接select * from B就OK了啊 如果这个元组值与B表表名不等 你可以用UPDATE语句修改 但似乎也没什么意思 因为只要你想查B表的内容 直接FROM B就可以了
2.你想让输出结果是A表的一列属性值,但FROM后面是B表的表名,就是说FROM后面是另一个表名 但输出结果确是A表的某一列,这样的话就想楼上说的建视图,即通过代码CREATE VIEW B AS SELECT A的列名 FROM A;把A表的那一列建成一个视图叫B。之后直接FROM B就可以了。

做个试图.. 不用多讲了吧~

这个可以用动态sql语句完成,假设在A表中存放表名的字段为<table_name>:
declare @table_name varchar(20)
select @table_name=table_name from a where <条件>
exec('select * from '+@a)
有什么问题可以hi我