Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在sql server中获取列中的某些值_Sql_Sql Server_Sql Server 2008_Tsql - Fatal编程技术网

如何在sql server中获取列中的某些值

如何在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],

我在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