源数据是这样select z.shiftcode shiftcode from zz_lens_to_q_summary z
1 5F
2 5F
3 5F
4 5F
5 5H
6 5H
7 5H
8 5H
9 5H
截取一个字符,但出来的结果为空,无论有没有trim。select substr(z.shiftcode,1,1) shiftcode from zz_lens_to_q_summary z
select substr(trim(z.shiftcode),1,1) shiftcode from zz_lens_to_q_summary z结果为空,但不像null,因为null底色不一样。
截取两个字符,显示的结果是一个字符。select substr(trim(z.shiftcode),1,2) shiftcode from zz_lens_to_q_summary z1 5
2 5
3 5
4 5
5 5
6 5
7 5
8 5截取一个字符,但后面和另一个字符串组合,截取的字符串出来了,但是后面跟着的‘课’字没了。select substr(z.shiftcode,1,1)||'课' shiftcode from zz_lens_to_q_summary z1 5
2 5
3 5
4 5
5 5
6 5
7 5
8 5
9 5
求解~~请问各位高人这是什么原因导致的?
1 5F
2 5F
3 5F
4 5F
5 5H
6 5H
7 5H
8 5H
9 5H
截取一个字符,但出来的结果为空,无论有没有trim。select substr(z.shiftcode,1,1) shiftcode from zz_lens_to_q_summary z
select substr(trim(z.shiftcode),1,1) shiftcode from zz_lens_to_q_summary z结果为空,但不像null,因为null底色不一样。
截取两个字符,显示的结果是一个字符。select substr(trim(z.shiftcode),1,2) shiftcode from zz_lens_to_q_summary z1 5
2 5
3 5
4 5
5 5
6 5
7 5
8 5截取一个字符,但后面和另一个字符串组合,截取的字符串出来了,但是后面跟着的‘课’字没了。select substr(z.shiftcode,1,1)||'课' shiftcode from zz_lens_to_q_summary z1 5
2 5
3 5
4 5
5 5
6 5
7 5
8 5
9 5
求解~~请问各位高人这是什么原因导致的?
create table temp(str varchar2(20));
select a.*,rowid from temp a;
--手动添加数据select substr(t.str,1,1) from temp t;结果如下:
1 5
2 5
3 5
4 5
5 5
6 5
7 5
8 5
9 5select substr(trim(t.str),1,2) s from temp t;结果如下:
5F
5F
5F
5F
5H
5H
5H
5H
5Hselect substr(trim(t.str),1,2)||'test' s from temp t;结果如下:
5Ftest
5Ftest
5Ftest
5Ftest
5Htest
5Htest
5Htest
5Htest
5Htest
我也想过是否和我的Table有关系,可是为什么最后一句SQL 合并字符的时候被截掉的是合并的字符而不是从字段截取的字符呢
5Ftest
5Ftest
5Ftest
5Ftest
5Htest
5Htest
5Htest
5Htest
5Htest这条怎么了?是正常的结果~~你想表达什么?
把你截取到的字符用ascii看下编码值。
怀疑值可能不是0x20(32),如果不是需要使用trim(both '指定的空白符' from shiftcode)
结果为53, 是5的ascii码,可为啥就是显示不出来呢
select '|'||z.shiftcode||'|' as shiftcode from zz_lens_to_q_summary z