groupid levelid text
A01 01 null
A01 02 test
A01 03 testA02 01 test
A02 02 testA03 02 test
A03 03 nullA04 01 test
A04 02 null
A04 03 test
A04 04 test按groupid进行分组,每一组的text字段有一个为空,该组的status设置为0,如果都不为空,就设为1
想生成的结果如下
groupid status
A01 0
A02 1
A03 0
A04 0谢谢!!
A01 01 null
A01 02 test
A01 03 testA02 01 test
A02 02 testA03 02 test
A03 03 nullA04 01 test
A04 02 null
A04 03 test
A04 04 test按groupid进行分组,每一组的text字段有一个为空,该组的status设置为0,如果都不为空,就设为1
想生成的结果如下
groupid status
A01 0
A02 1
A03 0
A04 0谢谢!!
SQL> SELECT GROUPID,
2 MIN(DECODE(TEXT,NULL,0,1)) STATUS
3 FROM TABLE_NAME TT
4 GROUP BY GROUPID;GROUPID STATUS
------- ----------
A01 0
A02 1
A03 0
A04 0
SQL> SELECT GROUPID,
2 DECODE(SIGN(COUNT(1)-COUNT(TEXT)),1,0,1) STATUS
3 FROM TABLE_NAME TT
4 GROUP BY GROUPID;GROUPID STATUS
------- ----------
A01 0
A02 1
A03 0
A04 0
from
(
select groupid, count(levelid) levelidcount, count(text) textcount
from tablename
group by groupid
)
--试一下:SELECT GROUPID, docode(count(DECODE(TEXT, NULL, 1, 0)), 0, 1, 0) STATUS
FROM TABLE_NAME
GROUP BY GROUPID;
2 MIN(DECODE(TEXT,NULL,0,1)) STATUS
3 FROM TABLE_NAME TT
4 GROUP BY GROUPID;
1楼正解。顶下
2 MIN(DECODE(TEXT,NULL,0,1)) STATUS
3 FROM TABLE_NAME TT
4 GROUP BY GROUPID;
同意楼上说法,up
SELECT GROUPID, docode(count(DECODE(TEXT, NULL, 1, 0)), 0, 1, 0) STATUS
FROM TABLE_NAME
GROUP BY GROUPID;