我正在使用MS Reporting Services来绘制Oracle数据库中的一些数据。我想使用另一个select语句中的值来命名select语句中的列。这可能吗?
而不是
Select Column1 As 'Test' From Table1
我可以做点什么吗
Select Column1 As (Select column2 from Table2 where Value = 1) From Table1
答案 0 :(得分:2)
我认为你必须分别查询,然后动态地形成查询。有兴趣看看是否有不同的答案。
答案 1 :(得分:1)
我的PL / SQL有点生疏,所以接下来是比编译和编码更多的伪代码。测试代码。这完全脱离了我的头脑。但是,如果您知道表中列的特定序号位置,您可以尝试这样做:
columnName varchar2(50):=
Select column_name
From all_tab_columns c
Where lower(table_name) = '<% Your Table2 Name %>' And
column_id = 9 -- The appropriate ordinal
Order By column_id;
选择Column1作为columnName来自Table1;
从“all_tab_columns”中抽取的列值可能会对您有所帮助。看看周围,看看。
我希望这会有所帮助。
答案 2 :(得分:1)
您可以将所有需要的列名称查询到单独的报表数据集中,创建隐藏的多值报表参数vColumns,将列设置为数据集作为参数默认值,并将其用作字符串数组:
参数!vColumns(0).Value - 将是第一列等。因此您可以将它们用作查询参数。