关于sql的一个简单问题,大家帮忙了 ( 积分: 100 )

  • 主题发起人 主题发起人 tgdjw
  • 开始时间 开始时间
T

tgdjw

Unregistered / Unconfirmed
GUEST, unregistred user!
我在access表data中有这样一个字段word,里面内容有重复的,例如:
word
--------
一阳
一阴
二伤 //
二伤 //
二海
三海
四伤 //
四伤 //
五阳

我想把里面重复的内容只保留一个并且记录的顺序不变,最后结果如下:
word
--------
一阳
一阴
二伤
二海
三海
四伤
五阳

我用select distinct word from data 可以实现,但是记录排列顺序完全变了,结果按照拼音的排序,现在是得到结果但是排列顺序保持,请问大家如何实现,谢谢
 
我在access表data中有这样一个字段word,里面内容有重复的,例如:
word
--------
一阳
一阴
二伤 //
二伤 //
二海
三海
四伤 //
四伤 //
五阳

我想把里面重复的内容只保留一个并且记录的顺序不变,最后结果如下:
word
--------
一阳
一阴
二伤
二海
三海
四伤
五阳

我用select distinct word from data 可以实现,但是记录排列顺序完全变了,结果按照拼音的排序,现在是得到结果但是排列顺序保持,请问大家如何实现,谢谢
 
增加一个字段,用数字表示分类
 
汉字排序只能按汉字内码进行排序,基本上与拼间排序相一致。
建议表中设一个ID字段(主键)。select distinct word from data order by id
 
增加一个字段用来排序也不行
select distinct word from data order by id
好象不行的,因为distinct和order by不能同时使用
 
这样也许能行:
select distinct word from data order by right(word,2)
 
也不行,大家再看看怎么实现
 
select word ,
case left(word,1) WHEN '一' then '1'
WHEN '二' then '2'
WHEN '三' then '3'
WHEN '四' then '4'
WHEN '五' then '5'
else '8'
end as s
from access
group by word,left(word,1)
order by s


试一试如上语句………………你是否满意…………
 
谢谢,我word字段里面的字可不是光一、二、三四这么几个字,我那是举个例子。你的方法不行
 
顺序这么重要吗?在关系型数据库里面,数据的存储顺序不是关键的
 
以下代码可能对你有帮助
create table test(id int identity(1,1),eml varchar(20),phone varchar(20))

select * from test
id eml phone
-----------------------
1 alan 1
2 matthew 2
3 alan 3
4 cynthia 4
5 dragon 5
6 dragon 6


select * from test where id in (
select id from (
select eml,min(id) as id from test
group by eml) as b
)

id eml phone
--------------------------
1 alan 1
2 matthew 2
4 cynthia 4
5 dragon 5
 
把id加上
select distinct word,[red]id[/red] from data order by id
 
to jennykiller
当然要顺序了,因为我要顺序显示
to pirate2000
这句sql最终结果得到的是所有的word。
to protossgffnxk,
我先试试,谢谢
 
谢谢大家,功能实现,用的是protossgffnxk提供的方法
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部