作者adrianshum (Alien)
看板Database
标题Re: [SQL ] 请问这个查询的语法该怎麽下?(Sql Server)
时间Thu May 8 16:44:54 2008
※ 引述《adrianshum (Alien)》之铭言:
: select p1.name from people_lan p1, people_lan p2
: where p1.name=p2.name and p1.language = '中文' and p2.language='英文'
:
: alien
:
: --
:
※ 发信站: 批踢踢实业坊(ptt.cc)
: ◆ From: 202.155.236.82
: 推 grence:3.4.5...种语言怎麽办?要有弹性怎麽办?一直卡到类似问题 05/02 19:44
你所谓的弹性是怎样?
在不修改 SQL 的情况下是不可能达到 '不定数量语言'.
要是你已预计要用程式 dynamic generate SQL, 那何不
乾脆拿相关 record 出来然後用 program count?
之前有人提过用bitwise operation 但我想很多 DB 都没有
这类功能...
anyway, 还是有比较简单一点的修改 SQL 的方法 (能support
subquery的情况下)
select name from (
select name, count(name) c from people_lan where
language in (?,?,?......) group by name)
where c = ?
修改的是 in 里面的 list, 和最後 c 的 variable
比如要找五个 lang 的人, 就 in 那种 language, 然後
c = 5
这样就又能维持正常 schema, 又能以少量 SQL 改动达到你的要求
alien
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 202.155.236.82