注册 登录
编程论坛 SQL Server论坛

sql 查询的问题

风流上进 发布于 2007-09-10 09:56, 1384 次点击
有一个字段“患者编号” 由14位编号组成 怎么查前12 位相同的 所有记录
17 回复
#2
风流上进2007-09-10 09:57
谁知道
#3
purana2007-09-10 10:05
select *
from tbl_name
where left(no,12)=123456789012
#4
风流上进2007-09-10 10:27
什么意思
#5
purana2007-09-10 10:41
你什么意思.
我就什么意思
#6
风流上进2007-09-10 10:54
那样查不出来 我试过了
#7
bygg2007-09-10 10:56
left()或substring()取出前12位的数字,再比较
#8
风流上进2007-09-10 11:01
我的意思是 :
比如说 患者编号里的几个记录如下
11030903030102 刘智华 女
11030903030103 刘宇悦 女
11030903030104 刘运龙 男
11030903030111 陈艳菊 女

11031102730102 兰爱红 女
11031102730103 龙秀钊 男
11031102730104 龙凤兰 女
11031102730111 龙胜权 男

这两组前12位是一样的纪录
怎么查出这样的所有记录
#9
风流上进2007-09-10 11:02
bygg 怎么比较我现在想不出来
#10
sky_yang_sky2007-09-10 11:59
select 患者编号 from tablename where left(患者编号,12)='110311027301'   

[此贴子已经被作者于2007-9-10 13:38:35编辑过]


#11
bygg2007-09-10 13:00
select * from tablename where left(no,12) = '110309030301'   
#12
thllilac2007-09-10 14:47
select * from t
inner join
(select distinct left(患者编号,12) as Left12,count(*) as NUM from t group by left(患者编号,12)) a
on a.Left12=left(t.患者编号,12) where NUM >3
#13
xyjbyd2007-09-10 16:54
select *
from tablename
where 患者编号 like '110311027301%'

试试!
#14
hushimiao2007-09-10 19:21
select 患者编号 from tablename where left(rtrim(ltrim(患者编号)),12)='110311027301'
#15
dragon17462007-09-11 00:39

select * form 表 where 患都编号 like '11031102730%'

这句话的意思就是匹配前是这个11031102730的,而后面那个%并没有限定位数,
如果你的编号后面是要限定位数的,有几位则用几个_下划线来代替,通配符

#16
风流上进2007-09-11 09:32
问题解决了谢谢大家


select * from musterroll where left(医疗编号,12) in
(
select 成员 from
(
select count(*) as 相同成员,left(医疗编号,12) as 成员 from musterroll
group by left(医疗编号,12)
) as t
where 相同成员 >1
#17
风之剑雨飘香2007-10-07 12:43
select a.患者编号,a.姓名,a.性别 from 表名 a,
(select left(患者编号,12) from 表名 group by left(患者编号,12)) b
where left(a.患者编号,12)=b.患者编号 order by a.患者编号
#18
Kendy1234562007-10-08 13:22
select * from table1 where left(患者编号,12) in
(select left(患者编号,12) from table1 group by left(患者编号,12) having count(*) > 1) order by left(患者编号,12)

这样试试

刚换工作单位 没装SQL呢还 所以没有试试看是不是能成功执行 抱歉了
1