2012-02-27 51 views
5

Trong một cột bảng, tôi có giá trị này:Làm thế nào để đọc chuỗi từ đúng PLSQL

DV-2011-01-000004 (kiểu dữ liệu là varchar2)

Làm thế nào tôi có thể nhận được một phần của string '000004'? Trong t-sql chúng có hàm right() này nhưng trong PL SQL i cant'seem để tìm một hàm giống như bên phải() trong t-sql.

Cảm ơn sự giúp đỡ.

+2

Để rằng câu hỏi này có thể giúp các nhà phát triển trong tương lai: xin vui lòng chỉnh sửa câu hỏi của bạn để nêu chính xác những gì bạn yêu cầu là - làm bạn muốn nhận chuỗi ký tự sau '-' cuối cùng, hoặc bạn muốn chỉ nhận được tối đa 6 ký tự? –

Trả lời

8
substr('DV-2011-01-000004', length('DV-2011-01-000004')-6 + 1) 
+0

Tôi nghĩ rằng anh ấy muốn là để sử dụng chung, không chỉ cho bây giờ .. –

+0

right() trong t-sql giống như substr (length - neededchar) – turbanoff

+0

Ok let anh ta quyết định, tôi thường cho các giải pháp chung và không phải là những giải pháp cụ thể. –

2

bạn có thể sử dụng:

SUBSTR('DV-2011-01-000004', INSTR('DV-2011-01-000004', '-', -1) +1) 

khi sử dụng INSTR với vị trí bắt đầu tiêu cực, ông sẽ tìm ra chỉ số cuối cùng của "-". sau đó SUBSTR sẽ cắt giảm từ lần xuất hiện này cho đến khi kết thúc (vì tôi không cung cấp Chiều dài)

+0

trong pl/sql dấu ngoặc kép được sử dụng cho định danh, không cho chuỗi – turbanoff

Các vấn đề liên quan