跟decode没有半毛钱关系, 记录查询结果行的顺序跟你排序有关,没有排序的话,一般是数据插入的先后顺序, 加上 order by deptno
我有ORDER BY 啊,想按自字义的顺序才DECODE。
估计bumen 这列有空格,或其他字符; select dump(bumen) from t , 看看这个列的内容是什么;
SELECT a.* FROM (SELECT 1 deptno, '开发部' bumen FROM dual UNION SELECT 2 deptno, '销售部' bumen FROM dual UNION SELECT 6 deptno, '技术部' bumen FROM dual UNION SELECT 4 deptno, '事业部' bumen FROM dual UNION SELECT 5 deptno, '人事部' bumen FROM dual UNION SELECT 3 deptno, '行政部' bumen FROM dual) a ORDER BY decode(bumen, '人事部', 1, '技术部', 2, '行政部', 3, '销售部', 4, '开发部', 5, '事业部', 6)
问下,(SELECT 1 deptno, '开发部' bumen FROM dual是什么意思呢
估计bumen 这列有空格,或其他字符; select dump(bumen) from t , 看看这个列的内容是什么; 输出的是一串串数字啊 Typ=96 Len=20: 229,188,128,229,143,145,233,131,168,32,32,32,32,32,32,32,32,32,32,32
把语句拿到sqlplus下看是否正确。
我看了,试了啊。昨天回复的,不过这里有限制,不能连续回复超过三个。就发不出来 了。放在后面发现这DECODE这函数把部门都转换为NULL了。并没有转换为数字123
记录查询结果行的顺序跟你排序有关,没有排序的话,一般是数据插入的先后顺序,
加上 order by deptno
估计bumen 这列有空格,或其他字符;
select dump(bumen) from t , 看看这个列的内容是什么;
SELECT a.*
FROM (SELECT 1 deptno,
'开发部' bumen
FROM dual
UNION
SELECT 2 deptno,
'销售部' bumen
FROM dual
UNION
SELECT 6 deptno,
'技术部' bumen
FROM dual
UNION
SELECT 4 deptno,
'事业部' bumen
FROM dual
UNION
SELECT 5 deptno,
'人事部' bumen
FROM dual
UNION
SELECT 3 deptno,
'行政部' bumen
FROM dual) a
ORDER BY decode(bumen, '人事部', 1, '技术部', 2, '行政部', 3, '销售部', 4, '开发部', 5, '事业部', 6)
'开发部' bumen
FROM dual是什么意思呢
估计bumen 这列有空格,或其他字符;
select dump(bumen) from t , 看看这个列的内容是什么;
输出的是一串串数字啊
Typ=96 Len=20: 229,188,128,229,143,145,233,131,168,32,32,32,32,32,32,32,32,32,32,32
Typ=96 Len=20: 229,188,128,229,143,145,233,131,168,32,32,32,32,32,32,32,32,32,32,32
就是这个结果;显然 “开发部” 后面,还有 11 个空格,每一个 32,就是一个空格;你这个字段的类型是什么 ?char 类型吗 ?