2016-02-10 7 views
0

У меня есть столбец в моей таблице, которая имеет следующие значенияSQL Выберите значения внутри скобок

|   loan_no     | 

| SSS Pensioner Loan (C000000001) | 
| SSS SSS Loan (C000000002)  | 
| SSS Salary Loan (C000000007) | 
| SSS PAGIBIG Loan (C000000003) | 

Как я могу выбрать только значение внутри круглых скобок иметь результат, как это:

| loan_no | 

| C000000001 | 
| C000000002 | 
| C000000007 | 
| C000000003 | 

Спасибо заранее :) Я использую SQL Server 2008 R2

+1

SQL может это сделать, но вы должны подумать о ча при создании базы данных. что ты уже испробовал? Посмотрите на CharIndex и подстроку для стартеров. – Sparky

+0

SUBSTRING и PATINDEX/CHARINDEX, или лучше обрабатывать проблемы отображения в более подходящем слое кода. –

ответ

0

Попробуйте это ..

declare @table table (loan nvarchar(100)) 
insert into @table 
select 'SSS Pensioner Loan (C000000001)' 
union all select 'SSS SSS Loan (C000000002)' 
union all select 'SSS Salary Loan (C000000007)' 
    union all select 'SSS PAGIBIG Loan (C000000003)' 


    select substring (loan,CHARINDEX('(', loan)+1,CHARINDEX(')', loan)-CHARINDEX('(', loan)-1) 
    from @table 
2

CHARINDEX поможет вам Reference

declare @temp table   
(val nvarchar(77)) 

insert into @temp values ('SSS Pensioner Loan (C000000001)') 
insert into @temp values ('SSS SSS Loan (C000000002)  ') 
insert into @temp values ('SSS Salary Loan (C000000007) ') 
insert into @temp values ('SSS PAGIBIG Loan (C000000003) ') 



SELECT 
SUBSTRING(val,CHARINDEX('(', val) + 1,CHARINDEX(')', val) - CHARINDEX('(', val) - 1) as Val 
from @temp 
0

Вы можете использовать подстроку и функции Instr для MySQL (для SQL сервера, который вы можете использовать CHARINDEX вместо инстр) следующим образом:

SELECT SUBSTRING(loan_no, INSTR(loan_no, '(')+1,INSTR(loan_no, ')')-INSTR(loan_no, '(')-1) AS loan_no, INSTR(loan_no, ')') AS loan_no 

Из таблицы

Смежные вопросы