Re: [SQL ] 請問這個查詢的語法該怎麼下?(Sql Server)
※ 引述《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)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 6 之 6 篇):