2009年4月17日 星期五

列舉資料比對

如何,在以逗點分隔的列舉資料內,找出特定ID值.
例如, 找出以下 remark 欄位資料,有值為 c, 而不是cd者.

ITEM REMARK
---------- -------------
aaa a,b
bbb b,d
ccc a, b ,c ,d
ddd ab,cd,e
 
方法:
1. 消除空白
2. 前後包逗點
3. 利用like比對資料, 如下,
 
select item, remark
from tb
where (','|| replace(remark,' ','') || ',') like ('%,c,%');
 
ITEM REMARK
---------- ------------
ccc a, b ,c ,d

 
Note: 進階一點,還可以將like的對象,與其他Table欄位關聯,像MySQL的例子這樣子...
SELECT B.item, sum(A.money) as A_money
FROM B, A
WHERE CONCAT(',', B.nos, ',') Like CONCAT('%,', A.id, ',%')
GROUP BY B.item;

沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。