首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在asp.net中把桌子“倒过来”--如何?

在asp.net中把桌子“倒过来”--如何?
EN

Stack Overflow用户
提问于 2011-02-10 01:46:06
回答 4查看 178关注 0票数 3

我该如何翻转这张桌子:

+

类别+子类别

+

|Cat..........+波斯语.........|

|Cat..........+暹罗语....|

|Cat..........+猫...........|

|Dog.........+ Poodle..........|

|Dog.........+ Boxer............|

+

在它的一侧,获取以下内容:

+

|猫.........+狗.............|

+

Poodle.........+的

  • Persian..+

Boxer...........+ +

  • 连体

...................+ +

  • 缅甸文

+

初始表来自以下MySQL查询:

代码语言:javascript
复制
select c.CATEGORYNAME, sc.NAME from subcategorydefinition sc
  join categorydefinition c on sc.CATEGORYID = c.CATEGORYID
  where c.ISDELETED = 0
  order by CATEGORYNAME, NAME ASC

我想(可能)在Gridview中显示它。

干杯!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-02-10 02:39:07

透视在SQL中是静态的。你需要事先知道你想要输出的列,所以如果类别列表不是固定的,你就不能直接使用pivot。

如果您使用的是Microsoft SQL Server (我知道您没有使用Microsoft SQL Server,但这只是为了举例),那么您可以在存储过程中使用动态查询,如下所述:http://www.simple-talk.com/community/blogs/andras/archive/2007/09/14/37265.aspx

现在,在MySql中,没有办法在SQL端执行动态SQL (没有execute或sp_executeqsl的等价物),因此您的最佳选择是在服务器端(aspnet服务器端)生成一个类似的sql查询。

另一个更简单的想法是忘记在SQL中做这件事,而是在你的C#代码中做聚合。

票数 4
EN

Stack Overflow用户

发布于 2011-02-10 01:51:58

您应该使用pivot

票数 0
EN

Stack Overflow用户

发布于 2011-02-10 02:49:05

要在SQL中做到这一点,您需要根据"Category“列中的可用值集动态生成查询。无论您是在纯SQL (在存储过程中)还是在代码(动态SQL)中执行,这通常都是相当痛苦且容易出错的。

我建议以存储的方式从数据库中读取值,然后动态创建一个DataTable或类似的结构作为UI的数据源。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4948502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档