如何在sql server中获取列中的某些值
我在JobDetails表中有一个job Name列如何在sql server中获取列中的某些值,sql,sql-server,sql-server-2008,tsql,Sql,Sql Server,Sql Server 2008,Tsql,我在JobDetails表中有一个job Name列 job Name A_1 A_2 B_1 B_2 B_3 我像这样搜索max number SELECT MAX(JobDetails.[Job Name]) FROM Monara.JobDetails WHERE ( [Job Name] like 'B_%' ) 结果是B_3 但我只想得到3个 我怎么做 请尝试以下代码: SELECT SUBSTRING(JobDetails.[Job Name],
job Name
A_1
A_2
B_1
B_2
B_3
我像这样搜索max number
SELECT MAX(JobDetails.[Job Name])
FROM Monara.JobDetails
WHERE
( [Job Name] like 'B_%' )
结果是B_3
但我只想得到3个
我怎么做 请尝试以下代码:
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_%'
我拒绝制作包含空格的列 下划线是一个wildchar,在使用Like时应该小心处理
SELECT count(JobDetails.[Job Name])
FROM Monara.JobDetails
WHERE [Job Name] like 'B_%'
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