sql的问题..我怎么能动态增列一个sql查询结果?
-
11-09-2019 - |
题
我在写一份报告,返回的详细信息的对象("文件")在我的数据库。我应用程序可以让用户创建自己的标志使用的对文件的对象。旗子基本上包括一个名称,那么标志的实例中存储一点值表明它是否设置的母文件的对象。
我想写一个查询,返回每一行文件数据库,其中一些列在结果设置包含该文件的细节(id,name,大小等)和剩下列标志的名字,有比值的返回,以表示是否标志置于给予的文件排。
这是否有意义吗?我怎么去写的查询?
谢谢你任何帮助。
编辑:澄清..
作为这部分的查询,我需要运行一次查询,返回的标志,已经创建由用户(我不知道这些在设计时),然后纳入一个检查每个标志的价值,在主要的查询返回的详细信息的文件。
简化的模式如下:
- 文件{Id,Name}
- 标志{Id,Name}
- FileFlags{FileId,FlagId}-一排在该表表示,设置了标志的文件
我需要查询返回的一个结果与列事情是这样的:
FileId 文件名 Flag1Name Flag2Name .... FlagNName
解决方案
你可以开始看的 枢轴 功能可用于SQL服务器2005年+.这些字符串连接你应该能够组装一个查询的任何数列
根据你的意见你的选择看起来像这样的东西:
SELECT <non-pivoted column>,
[first pivoted column] AS <column name>,
[second pivoted column] AS <column name>, ...
From Table
PIVOT (
...
FOR
...
)
其他提示
为什么不建立一个存储程序所需的逻辑查询的用户的具体标志,等等-并在此基础上动态地建立一个查询串的变量,你需要什么?
然后可以使用 EXECUTE
返回的动态查询设置的用户。看看 http://msdn.microsoft.com/en-us/library/ms188332.aspx
听起来像是也许你需要一个交叉查询的,你想要转行到列。是标志存在一个单独的表格作为一个为许多关系的母体桌子吗?
我觉得你想要的是个别名。这里是一个例子 http://www.sql-tutorial.net/SQL-Aliases.asp
SELECT Employee, SUM(Hours) AS SumHoursPerEmployee
FROM EmployeeHours
GROUP BY Employee
我真的有看到你的架构,以帮助进一步。
编辑
也许你需要嵌套 SELECT
s.http://sqlzoo.net/1a.htm