作者grence (多想两分钟 = =")
看板Database
标题Re: [INTERBASE]请问如何找出相同的值
时间Wed Sep 10 21:30:37 2008
※ 引述《matchyou (这样也要骂=.=)》之铭言:
: 以下sql只在sql server 测试过可行
: interbase不确定可不可行
: select * from A
: where (convert(varchar,客户姓名) + '--' + convert(varchar,消费序号)) in
: (
: SELECT (convert(varchar,客户姓名) + '--' + convert(varchar,消费序号))
: FROM A
: group by 客户姓名,消费序号 having count((convert(varchar,客户姓名) + '--' +
: convert(varchar,消费序号)))>1
: )
没看完整串就先推文,我的想法也是类似这样;
select A.*
from A
join
(
SELECT convert(varchar,客户姓名) name, convert(varchar,消费序号) sno
FROM A
group by 客户姓名,消费序号
having count(1)>1
)x on x.name=客户姓名 and x.sno=消费序号
这个写法结果应该是一样的,但资料量大的时候可以透过建立索引有好一点的效率..
当然,这只是理论上,仅供参考,效率是实际做才会知道的事
: ※ 引述《woohyuk49 (Forever H.O.T)》之铭言:
: : 好比说
: : 表A
: : 客户姓名 消费序号 日期
: : 小王 1 970101
: : 小李 5 970505
: : 小黄 2 970805
: : 小王 2 970208
: : 小陈 1 970509
: : 小王 2 970315
: : 说明:一个客户的消费序号都是从1开始
: : 像小王 消费序号是 1>2>2 照理来说应该是3
: : 如果说我现在想把此种状况的查询出来 我该如何下语法呢
: : 下语法後出现的资料要像是
: : 客户姓名 消费序号 日期
: : 小王 2 970208
: : 小王 2 970315
: : 谢谢版友^^
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.229.203.139
1F:推 woohyuk49:可以了^^ 谢谢您 09/11 09:33