关于交叉表的,列的排序问题,我弄了好久也没弄出来,太惨了,求各位帮忙

mnsiii 2004-11-03 09:57:24
交叉表中的列式自动生成的,生成的时候他就已经排好序了,但是这种格式往往不能满足需要不如说自动生成的列有如下:
M L S 这是衣服的尺码,现在我要的结果是 S L M ,请问有什么高招,可以不让交叉表在生成的时候对自动生成的列排序?或者能控制它的排序?
...全文
243 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
mittee 2004-11-04
  • 打赏
  • 举报
回复
select ... ,  
(case when 尺码='M' then 3
when 尺码='L' then 2
when 尺码='S' then 1
end )as cm
from .... order by cm ;
mnsiii 2004-11-04
  • 打赏
  • 举报
回复
我知道,但是效果是这样的!客户快逼死我了、!救命呀!!!!
llitcwl 2004-11-04
  • 打赏
  • 举报
回复
不可能不行的,你重新做一个试试
交叉表有点比较讨厌的是改变SQL它会自动重排,除非修改DW源码
mnsiii 2004-11-04
  • 打赏
  • 举报
回复
我用的是Ms SQL,不过按照你的说发做了,没反应!没有效果!
你能说得详细一点吗,是在数据窗口的systanx中修改sql语句吗?好像不行,我用的是char(8),是不是还要在后面补足空格呀?补了好像也没用
llitcwl 2004-11-03
  • 打赏
  • 举报
回复
select ... ,  
case when 尺码='M' then 'M'
when 尺码='L' then ' L'
when 尺码='S' then ' S'
end as cm
from ....
也行,而且看不出来
llitcwl 2004-11-03
  • 打赏
  • 举报
回复
你用的什么数据库?
select ... ,  
case when 尺码='M' then '3:M'
when 尺码='L' then '2:L'
when 尺码='S' then '1:S'
end as cm
from ....
在MS SQL和ORACLE中应该都是可以的,cm只不过给他取个名字吧
mnsiii 2004-11-03
  • 打赏
  • 举报
回复
真的没有吗?怎么会呢。要是要求的信息必须准确,那咋弄?
CL0 2004-11-03
  • 打赏
  • 举报
回复
它是自动按名称排序的,除了在名字上动脑筋确实没有其它好办法
mnsiii 2004-11-03
  • 打赏
  • 举报
回复
不行呀,该怎么派还是怎么排,不听使唤

我还想问,那个end as cm 中的cm 是个什么东西?
xuam 2004-11-03
  • 打赏
  • 举报
回复
select ...,case (尺码 when 'M' then '3:M'
when 'L' then '2:L'
else '1:S')
from ....
xuam 2004-11-03
  • 打赏
  • 举报
回复
select ...,case (尺码 when 'M' then '3:M'
when 'L' then '2:L'
when 'S' then '1:S'
end as cm )
from ....
mnsiii 2004-11-03
  • 打赏
  • 举报
回复
大哥,他报错,说CASE语法附近有错误!
llitcwl 2004-11-03
  • 打赏
  • 举报
回复
在生成SQL的时候进行处理:
select ...,case 尺码 when 尺码='M' then '3:M'
when 尺码='L' then '2:L'
when 尺码='S' then '1:S'
end as cm
from ....
之类的,他就会按你要来排序
如果1:S这种难看 ,就用' S',' L','M'来排

******************************
www.c-wl.com/bbs
******************************

611

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder DataWindow
社区管理员
  • DataWindow社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧