相关疑难解决方法(0)

在sql中查询数据字典的最佳方法

对于我正在设置的项目,我需要一个非常动态的数据结构.我要存储我没有定义的记录.一条记录可以包含5列,另一条记录可能包含10列.

为了支持这一点,我想使用包含以下列的表:

ResultId RecordId RecordTypeId键值

这支持所有可能的方案,但我做了一些问题.

  • 这是最好的方法还是我错过了更好的选择?
  • 什么是查询这个并以我们的方式获取我的记录的好方法?我将定义存储在一个不同的表中,告诉我每个记录类型存储哪些列.我已经看到了需要动态构建的PIVOT语句,因为你需要以数组样式提供字段(尽管我可以通过存储过程提供)
  • 如何保持大量记录的表现?
  • 使用像EF/Linq这样的东西是否方便?

这将使用SQL2008R2 Express后端在.NET 4,C#中编​​码.我正在寻找一些最佳实践.

更新!为了澄清一点:我需要存储来自不同的,未知的查询的数据的结果集.我不知道会有多少查询定义或它们会是什么样子.此数据库中的数据仅用于处理.用户甚至不知道这些表存在,没有输入,也不会有任何报告或任何数据以任何方式击中屏幕.结果集用于与其他结果集进行比较,所有这些都通过代码进行.我需要的是一种高度动态的方式来存储这些记录,这些记录在涉及大量记录时保持不变.

我想到的另一个选择是:

ResultId RecordId field1(sql_variant)field2(sql_variant)field3(sql_variant)field4(sql_variant)...

这是一个更好的主意吗?

c# sql sql-server sql-server-2008

1
推荐指数
1
解决办法
6019
查看次数

SQL根据主题计算出现次数

我发现很难说出我想要实现的目标.我有一个看起来像这样的表:

user char
---------
a | x
a | y
a | z
b | x
b | x
b | y
c | y
c | y
c | z
Run Code Online (Sandbox Code Playgroud)

如何编写一个可以返回以下结果的查询?

user x y z
-------
a |1|1|1|
b |2|1|0|
c |0|2|1|
Run Code Online (Sandbox Code Playgroud)

数字表示原始表中字符的出现次数

编辑:字符值未知,因此解决方案不能限制在这些值.很抱歉没有提及它.我正在使用Oracle DB,但计划使用JPQL构建查询.

sql oracle pivot jpql

1
推荐指数
1
解决办法
232
查看次数

标签 统计

sql ×2

c# ×1

jpql ×1

oracle ×1

pivot ×1

sql-server ×1

sql-server-2008 ×1