ksbm是表名称
ksbm是里面字段 有gb,nk等select ksbm from ksbm 得到 gb nk等select * from nkb 得到的是nkb里的数据因此得到nkb那就 select ksbm+'b' from ksbm 加个B就可以 这样就能得到 gbb nkb等现在如何将这两条sql语句写成1条语句?语句1 select ksbm+'b' from ksbm
语句2 select * from nkb
ksbm是里面字段 有gb,nk等select ksbm from ksbm 得到 gb nk等select * from nkb 得到的是nkb里的数据因此得到nkb那就 select ksbm+'b' from ksbm 加个B就可以 这样就能得到 gbb nkb等现在如何将这两条sql语句写成1条语句?语句1 select ksbm+'b' from ksbm
语句2 select * from nkb
union all
select * from nkb
报错
select ksbm+'b' from ksbm
union all
select col from nkb
selt @sql=''
select @sql=@sql+'select * from '+ksbm+'b;' from ksbm
exec (@sql)
语句2 select * from nkb我们先查询出语句1里面的ksbm+b 也就是nkb等
然后语句2根据nkb 查询nkb里面的全部数据
Table B (bb,ab,bc,bd)
如果是要把结果显示在一块,两者必定有关联关系SELECT A.aa,B.* FROM A INNER JOIN B ON A.ab=b.ab这个是内联接的。
还有Right ,Left等方法。
table a(也就是ksbm )
table b(nkb) 不是结果显示一块 是得到a里的nkb 然后 select nkb也就是b
怎么是结果显示一起呢?
select @s= ksbm+'b' from tb where ....
exec('select * from @s')
如果用存储过程 能不能详细点?
类似这样的?
ALTER proc selectAll
@s varchar(100)
as
select @s= ksbm+'b' from tb where ....
exec('select * from @s')
然后把2个合成1个这2张表 没有主外键什么的 也没相关ID 就是语句1的字段nkb 是语句2的表名
exec ('select * from '+ksbm+'b;' from ksbm)
合起来查
exec (substring('select * from '+ksbm+'b union all ' from ksbm,1,len('select * from '+ksbm+'b union all ' from ksbm)-9))
你的表名是从其它表中读出来的字符串,不这样写是不行的
select @s= ksbm+'b' from tb where ....
exec('select * from @s')
这样写有语法错误
CREATE TABLE #Ksbm
(ksbm varchar(50))CREATE TABLE #gdd
(aa varchar(20) )
CREATE TABLE #gbd
(aa varchar(20) )INSERT INTO #Ksbm
SELECT '#gd'
INSERT INTO #kSBM
SELECT '#gb'
update #Ksbm SET ksbm=' SELECT * FROM '+ ksbm+'d'DECLARE @Sqlstr varchar(1000)
SET @Sqlstr=' '
SELECT @Sqlstr= @Sqlstr+ ksbm FROM #ksbm
PRINT @Sqlstr
exec (@Sqlstr)