日期:2014-05-19  浏览次数:20385 次

新人求条sql语句!!
A表的数据
Price
--------
大与30000元  
大与30000元  
大与30000元  
6500-8000元                      
6500-8000元                      
12500-15000元                  
12500-15000元                  
小于5000元                            
小于5000元
8000-10000元                    
8000-10000元                    
8000-10000元
10000-12500元                  
10000-12500元                  
10000-12500元                  
10000-12500元

select查询语句想得到这个排序的效果
price                       count
----------           -------
小于5000元               2
6500-8000元             2      
8000-10000元           3
10000-12500元         4
12500-15000元         2    
大与30000元             3

------解决方案--------------------

select price ,count(*)as count from t group by price having count(*)> 1
------解决方案--------------------

select [price], count(*) as [count] from price group by price
------解决方案--------------------
这样就要在表前面加个字段插入数据 类似主键的。
然后根据这个字段排序了。
------解决方案--------------------
if object_id( 'tt ') is not null
drop table tt

create table tt(a varchar(20),b int)
insert into tt
select '小于5000元 ', 2
union all select '6500-8000元 ', 2
union all select '8000-10000元 ', 3
union all select '10000-12500元 ', 4
union all select '12500-15000元 ', 2
union all select '大于30000元 ', 3

select * from tt
order by convert(bigint, right( replace(replace(replace(a, '大于 ', ' '), '小于 ', ' '), '元 ', ' '), len( replace(replace(replace(a, '大于 ', ' '), '小于 ', ' '), '元 ', ' '))-charindex( '- ',replace(replace(replace(a, '大于 ', ' '), '小于 ', ' '), '元 ', ' '))) )


/*
a b
----------------------------------
小于5000元 2
6500-8000元 2
8000-10000元 3
10000-12500元 4
12500-15000元 2
大于30000元 3
*/

------解决方案--------------------
--創建測試環境
Create Table A
(Price Nvarchar(20))
--插入數據
Insert A Select N '大与30000元 '
Union All Select N '大与30000元 '
Union All Select N '大与30000元 '
Union All Select N '6500-8000元 '
Union All Select N '6500-8000元 '
Union All Select N '12500-15000元 '
Union All Select N '12500-15000元 '