2013-11-11 7 views
0

У меня есть столбец работа имя в JobDetails table.like этотКак получить значение столбца в SQL сервере

job Name 

A_1 
A_2 
B_1 
B_2 
B_3 

Я ищу максимальное число как этот

SELECT MAX(JobDetails.[Job Name]) 
FROM Monara.JobDetails 
WHERE 
    ([Job Name] like 'B_%') 

Результат является B_3

Но я хочу получить только 3.

Как я могу это сделать?

ответ

1

Я отказываюсь сделать столбец, содержащий пробел (ы)

Подчеркивание является wildchar, что вы должны обращаться с осторожностью при использовании Как

create table JobDetails ([JobName] varchar(10)) 
insert JobDetails values('A_1'),('A_2'),('B_1'),('B_2'),('B_3') 

SELECT max(cast(stuff(JobName, 1, patindex('%[_]%', JobName), '') as int)) 
FROM JobDetails 
WHERE JobName like 'B[_]%' 
-- added check to prevent most bad data 
and IsNumeric(stuff(JobName, 1, patindex('%[_]%', JobName), '')) > 0 
0

Попробуйте этот код:

SELECT SUBSTRING(JobDetails.[Job Name], 
        (SELECT CHARINDEX('_', JobDetails.[Job Name]) 
       ) + 1, 
        LEN(JobDetails.[Job Name]) - 
        CHARINDEX('_', JobDetails.[Job Name]) 
        + 1) 
FROM Monara.JobDetails 
WHERE [Job Name] LIKE 'B_%' 
0
SELECT count(JobDetails.[Job Name]) 
FROM Monara.JobDetails 
WHERE [Job Name] like 'B_%' 
Смежные вопросы