1、建立兩張表一張使用者表(t_user),一張興趣小組表t_group,其中小組成員字段儲存使用者id列表以逗號隔開,
表:t_user
編號(f_id) 名稱(使用者名稱)
1 張三
2 李四
3 王五
表:t_group
編號(f_id) 名稱(興趣小組名字)//group_name 興趣小組成員id/member_list
1 奧數 1,2
2 動物世界 2
3 藝術 1,2,3
要求查詢結果:
編號(f_id) 名稱(興趣小組名字) 興趣小組成員id
1 奧數 張三,李四
2 動物世界 李四
3 藝術 張三,李四
sql語句:
select f_id,group_name,
(select wm_sys.wm_concat(to_char(f_name)) from t_user where insert(member_list,f_id)>0 ) as memberlist_name
from t_gourp
這中間用到了兩個函式
wm_sys.wm_concat 將多行單列字段拼成已逗號隔開的字串
insert(string,substring) 返回substring 在字元string 的索引,這個函式很奇怪吧,不用管那麼多直接當indexof 用就行了
上面建表嚴重違反三大正規化,但是實際開發中確實存在這樣的情況,希望朋友們勿噴
Oracle8 OCI獲取多個字段值的程式設計步驟
oracle8 oci獲取多個字段值的程式設計步驟 在使用oracle8的oci獲取多個欄位值時,程式設計的順序是 1.拼接生成sql語句 2.分配語句控制代碼,3.準備sql語句 4.執行sql語句 5.分配ocidefine控制代碼,根據所選字段的型別來定義輸出變數,如果所選字段中有lob欄位,...
oracle中distinct多個字段
select distinct t.f resume id t.f resume status t.f resume status,t.f resume status,t.f recruit channel,t.f small channel id from css.t resume info t ...
Oracle 多表更新多個字段
總體原則 1 更新的時候一定要加where條件,否則必然引起該字段的所有記錄更新 2 跨表更新時,set和where時,儘量減少掃瞄次數,從而提高優化 update更新例項 1 最簡單的形式 單錶更新 sql 經確認customers表中所有customer id小於1000均為 北京 1000以內...