2010-12-21 143 views
0

通过使用以下查询,我可以获取特定的字符串。现在,此输出字符串包含字母数字字符..e.g.abcd123,pqrs542356。 现在我只想获取这个字符串的前4个字符,它总是字母顺序的。如何从oracle中的字符串中获取4个字符?

查询::

(SELECT SUBSTR(in_msg, INSTR(in_msg,'?', 1, 10)+ 1, INSTR(in_msg,'?', 1, 11) - INSTR(in_msg,'?', 1, 10)- 1) 
FROM emp_message 
WHERE emp_no IN (SELECT emp_no 
        FROM main_table 
        WHERE name like '%abcd%') 

该查询返回输出e.g.abcd1234,pqrs145423。 再一次,我想从此查询输出只提取前4个字符。 有人可以帮助我。

回答

0

这就是:

SUBSTR(field, 0, 4) 
+2

0或许也可以,但是指数从1 – Thilo 2010-12-21 06:01:33

+0

@Thilo开始:哎呀,但它并不明显:-S – zerkms 2010-12-21 06:02:41

+0

0被视为1,并且负面指数从右侧开始计数:http://www.adp-gmbh.ch/ora/sql/substr.html – Thilo 2010-12-21 06:05:16

0
select substr(x, 1, 4) from 
    (select x from ..... ) 
4

您可以使用SUBSTR(像你已经做):

SUBSTR(value, 1, 4) 
相关问题