我们在做sql查询的时候,有时候需要将查询的列作为表名,去引用,然后再次查询 declare @table_name varchar(20) select @table_name=table_name from a where <条件> exec('select * from '+@a) 此sql其实就是先将sql拼接成字符串,然后再将字符串转成sql指令,如果查询到的结果只有一列的时候,我们可以这样做,如果 @table_name的值有多个,则无法运用此方法 但是,如果碰到这种情况,我们查询
在很多场合,我们会须要用到oracle列合并,oracle提供了一些方法用于把某列的多行数据合并成一行. 一.10G曾经使用WMSYS.WM_CONCAT wmsys.wm_concat将字段的值用","来隔开. select id,wm_concat(name) from tab_name group by id; 二.sys_connect_by_path sys_connect_by_path(字段名, 2个字段之间的连接符号),这里的连接符号不要使用逗号.oracl