一个令我不知所措的问题 高手帮忙

wishstudying 2003-07-04 09:26:54
一个字段是Varchar型
值是一些数字和非数字组成的
如ISB 23-132
 ISB 23-133
 ISB 23-134

I234.5 123
I234.5 124
I234.5 125
 
 ISB 23-135
 ISB 23-136
 
 .....
查询时按空格以前分组,排序时按空格以后的排,(排序时还有处理有非数字字符)

我是新手,高手帮帮忙。谢谢 
...全文
36 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
gegangqiao 2003-07-05
  • 打赏
  • 举报
回复
SELECT SUBSTRING(T,1,CHARINDEX(' ',T,0-1)) AS FRIST1,
SUBSTRING(T,CHARINDEX(' ',T,0-1)+1,LEN(T)) AS END1 FROM T
order by end1
wishstudying 2003-07-04
  • 打赏
  • 举报
回复
谢谢大家 。我这个关键是怎么去掉非数字的字符,如: ISB 23-135
                          ISB 23-136

“-#¥*..."等啊,后按数值排序啊。除了写个函数办法。
wishstudying 2003-07-04
  • 打赏
  • 举报
回复
正在试验中。一会回来
enhydraboy 2003-07-04
  • 打赏
  • 举报
回复
select SUBSTRING(A,1,CHARINDEX(' ',A,1)-1) AS GROUP_COL,
SUBSTRING(A,CHARINDEX(' ',A,1)+1,LEN(A)-CHARINDEX(' ',A,1)) AS SORT_COL,
COUNT(*) AS CNT
FROM (
SELECT 'ISB 23-132' AS A
UNION
SELECT 'ISB 23-133'
UNION
SELECT 'ISB 23-134'
UNION
SELECT 'I234.5 123'
UNION
SELECT 'I234.5 124'
UNION
SELECT 'I234.5 125') TEST
GROUP BY SUBSTRING(A,1,CHARINDEX(' ',A,1)-1),SUBSTRING(A,CHARINDEX(' ',A,1)+1,LEN(A)-CHARINDEX(' ',A,1))
ORDER BY SUBSTRING(A,CHARINDEX(' ',A,1)+1,LEN(A)-CHARINDEX(' ',A,1))
nboys 2003-07-04
  • 打赏
  • 举报
回复
select count(*) from tablename group by substring(col,0,charindex(' ',col)) order by
reverse(substring(reverse(col),0,charindex('',reverse(col))))
I_wanttoknow 2003-07-04
  • 打赏
  • 举报
回复
select col from table
group by substring(col,1,charindex(col,' ')-1)
order by substring(col,charindex(col,' ')+1,len(col)-charindex(col,' '))
CrazyFor 2003-07-04
  • 打赏
  • 举报
回复
select left(字段名,charindex(' ',字段名)-1)
from 表
group by left(字段名,charindex(' ',字段名)-1)
order by replace(字段名,left(字段名,charindex(' ',字段名)-1)+' ','')
zjcxc 元老 2003-07-04
  • 打赏
  • 举报
回复
你的数据有一定的规律吗?
还是杂乱的,数字、字符杂乱存放?

如果是前者的话,可以不写函数解决
如果是后者,那就麻烦大了。

34,873

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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