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

关键字 distinct 的问题

dyqwyy 发布于 2007-03-31 09:31, 813 次点击

第一个语句
SELECT distinct DAH_, XM_, ZZ_, POST_, MAIL_, XZ_ FROM dbo.aaaa
第二个语句

select distinct dah_ from aaaa
为什么第一个语句的执行结果会比第二个语句的结果多



问题二
UPDATE ABC
花园= ('紫山大街6号 白云花园')

WHERE 地址 like ('%紫山大街6号%')
帮忙写个语句,就是把地址6号变成7号,8号,依次递增 而且上面花园那的6号也要和下面地址保持一致。
谢谢。


运行环境 SQL2005

[此贴子已经被作者于2007-3-31 9:48:47编辑过]

8 回复
#2
初学Delphi2007-03-31 09:37

是同一个表么?
第一个
合并的是DAH_, XM_, ZZ_, POST_, MAIL_, XZ_ 重复的
第二个 合并
DAH_的
如:
1,2,3,4,5
1,2,3,4,6
用第一个查询出来就是
1,2,3,4,5
1,2,3,4,6
两条记录
第二个只有
1
这一 条记录
第二个还没明白你的意思?
原来表中有‘紫山大街6号 白云花园'这个值,但是不确定有几个
你想把从第二个开始的变7号
第三个变8号?是这个意思么?
还有下次最好把创建表的语句给出来
这样别人给你测试的时候不用写创建表语句了

#3
dyqwyy2007-03-31 09:59

不好意思,打的时候漏了个A,两条语句用的是同一 张表
SELECT distinct DAH_, XM_, ZZ_, POST_, MAIL_, XZ_ FROM dbo.aaaa
那我只要去掉所有的DAH的重复值要怎么写呀?

第二个问题
表中原来是没有‘紫山大街6号 白云花园’这个值的,是自己写上去的。

表 :
地址         花园
紫山大街6号307      NULL
紫山大街7号401       NULL
紫山大街8号305       NULL
紫山大街9号 441       NULL


要的结果
地址     花园
紫山大街6号307  紫山大街6号 白云花园
紫山大街7号401      紫山大街7号 白云花园        
紫山大街8号305 紫山大街8号 白云花园
紫山大街9号441      紫山大街9号 白云花园             

[此贴子已经被作者于2007-3-31 10:20:02编辑过]

#4
初学Delphi2007-03-31 10:03

第二个
update table set 花园=地址+' 白云花园'
where 地址 like '紫山大厦%号'

#5
dyqwyy2007-03-31 10:21


表 :
地址         花园
紫山大街6号307      NULL
紫山大街7号401       NULL
紫山大街8号305       NULL
白云大道3号 441       NULL


要的结果
地址     花园
紫山大街6号307  紫山大街6号 白云花园
紫山大街7号401      紫山大街7号 白云花园        
紫山大街8号305 紫山大街8号 白云花园
白云大道3号441     白云大道3号             


那如果我要的结果是只是地址的一部分如何写???
老是要你帮我,真的很感谢

[此贴子已经被作者于2007-3-31 10:33:59编辑过]

#6
初学Delphi2007-03-31 10:38

没什么
update table set 花园=substring(地址,1,charindex('号',地址))+' 白云花园'
where 地址 like '紫山大厦%号'

#7
初学Delphi2007-03-31 10:40

怎么下面多出一个白云大街?

#8
dyqwyy2007-03-31 10:44
因为不是所有的地址都是一样的呀。
#9
ldy6632007-05-04 19:24

第二个
update table set 花园=left(地址,10)+' 白云花园';

行不?

1