作者grence (多想两分钟 = =")
看板Database
标题Re: [SQL ] 请问这个查询的语法该怎麽下?(Sql Server)
时间Thu May 8 20:06:56 2008
※ 引述《adrianshum (Alien)》之铭言:
: ※ 引述《adrianshum (Alien)》之铭言:
: : select p1.name from people_lan p1, people_lan p2
: : where p1.name=p2.name and p1.language = '中文' and p2.language='英文'
: : alien
: : --
: : ◆ From: 202.155.236.82
: : 推 grence:3.4.5...种语言怎麽办?要有弹性怎麽办?一直卡到类似问题 05/02 19:44
: 你所谓的弹性是怎样?
: 在不修改 SQL 的情况下是不可能达到 '不定数量语言'.
我的问题大概就是这样。具体点的例子嘛…人力银行好了:
A 徵才企业想找同时会说中语、台语的
B 企业想找同时会说中语、日语、英语的
C ....
语言数目跟种类都不定
: 要是你已预计要用程式 dynamic generate SQL, 那何不
: 乾脆拿相关 record 出来然後用 program count?
: 之前有人提过用bitwise operation 但我想很多 DB 都没有
: 这类功能...
最直觉就想到这种方法,像chmod 777, 1.read, 2.write, 4.execute ...
查表嘛,习惯关联式资料表就只会想到查表XD
SqlServer好像没有,自己写了一个拆解的function table...现在不在手上XD
就只是写递回去扣而已
: 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 改动达到你的要求
感谢,这概念很容易处理,看完就想好怎麽凑了,
没有往这方面想过,一直想在DB里解决…
用程式凑 SQL第一个想到的是一堆子查询....
select name, lang
from(
select name, lang
from(
select name, lang
from table
where lang=aaa)x
where lang=bbb
)y
where lang=ccc
UPDATE:↑其实这样是错的XD
....怎麽看都不会快XDDD,所以放弃的很快XD
: alien
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.229.198.97
※ 编辑: grence 来自: 61.229.198.97 (05/08 20:09)
※ 编辑: grence 来自: 61.229.198.97 (05/09 00:51)