读书人

新人求条sql语句!该怎么处理

发布时间: 2012-01-13 22:43:29 作者: rapoo

新人求条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元 '


Union All Select N '小于5000元 '
Union All Select N '小于5000元 '
Union All Select N '8000-10000元 '
Union All Select N '8000-10000元 '
Union All Select N '8000-10000元 '
Union All Select N '10000-12500元 '
Union All Select N '10000-12500元 '
Union All Select N '10000-12500元 '
Union All Select N '10000-12500元 '
GO
--
Select
Price,
Count(Price) As count
From
A
Group By
Price
Order By
Cast(Replace(Replace(Replace(Stuff(Price, 1, CharIndex( '- ', Price), ' '), N '小于 ', ' '), N '大与 ' , ' '), N '元 ', ' ') As Int)
GO
--除境
Drop Table A
--果
/*
Pricecount
小于5000元2
6500-8000元2
8000-10000元3
10000-12500元4
12500-15000元2
大与30000元3
*/

读书人网 >SQL Server

热点推荐