Sql server 用于在Sql Server中查找连字符的查询

Sql server 用于在Sql Server中查找连字符的查询,sql-server,Sql Server,我在数据库中有这样的记录,如下所示。我想搜索Account列,这是我的AccountDetails表中的最后一列。我想根据以下条件进行搜索: 1-要查找在第一个数字(可以是任何数字)后包含连字符的软管记录 12-要查找在第二个数字(可以是任何数字)后包含连字符的记录 123要查找在第三个数字(可以是任何数字)后包含连字符的记录 会计明细表 230263 jba 100-1807 230263 jba 100-1808 230263 jba 100-1809 235572 jba 99-1

我在数据库中有这样的记录,如下所示。我想搜索Account列,这是我的AccountDetails表中的最后一列。我想根据以下条件进行搜索:

1-要查找在第一个数字(可以是任何数字)后包含连字符的软管记录
12-要查找在第二个数字(可以是任何数字)后包含连字符的记录
123要查找在第三个数字(可以是任何数字)后包含连字符的记录

会计明细表

230263  jba 100-1807
230263  jba 100-1808
230263  jba 100-1809
235572  jba 99-1818
235572  jba 99-1819
235572  jba 99-1820
235572  jba 9-1818
235572  jba 9-1819
235572  jba 9-1820
我是这样做的

Select * From WF_Account Where CompanyId = 'jba' and Account Like '%-%'

不确定正在运行哪个版本的sql

但在SQL Server中,您可以使用
CHARINDEX
或SQL 2012
FINDSTRING

e、 g

编辑:

您还可以使用
PATINDEX
,它返回模式的字符串位置

所以也许:

WHERE PATINDEX('%-', Col1) <= 3

WHERE-PATINDEX('%-',Col1)不确定正在运行哪个版本的sql

但在SQL Server中,您可以使用
CHARINDEX
或SQL 2012
FINDSTRING

e、 g

编辑:

您还可以使用
PATINDEX
,它返回模式的字符串位置

所以也许:

WHERE PATINDEX('%-', Col1) <= 3

WHERE PATINDEX('%-',Col1)您可以尝试此查询:

1-要查找在第一个数字(可以是任何数字)后包含连字符的记录

12-要查找第二个数字后包含连字符的记录(可以是任何内容)

123要查找在第三个数字(可以是任何数字)后包含连字符的记录


您可以尝试以下查询:

1-要查找在第一个数字(可以是任何数字)后包含连字符的记录

12-要查找第二个数字后包含连字符的记录(可以是任何内容)

123要查找在第三个数字(可以是任何数字)后包含连字符的记录

用这个怎么样

1-要查找第一个数字后包含连字符的软管记录(可以是任何内容)

12-要查找第二个数字后包含连字符的记录(可以是任何内容)

123要查找在第三个数字(可以是任何数字)后包含连字符的记录

用这个怎么样

1-要查找第一个数字后包含连字符的软管记录(可以是任何内容)

12-要查找第二个数字后包含连字符的记录(可以是任何内容)

123要查找在第三个数字(可以是任何数字)后包含连字符的记录


使用LIKE的[]字符集选项。如果需要在字符集中添加连字符,请参见转义子句

select * from WF_Account
-- Hypen after one digit
where Account like '[0-9]-%'
-- Hypen after two digits
or Account  like '[0-9][0-9]-%'
-- Hypen after three digits
or Account  like '[0-9][0-9][0-9]-%'

使用LIKE的[]字符集选项。如果需要在字符集中添加连字符,请参见转义子句

select * from WF_Account
-- Hypen after one digit
where Account like '[0-9]-%'
-- Hypen after two digits
or Account  like '[0-9][0-9]-%'
-- Hypen after three digits
or Account  like '[0-9][0-9][0-9]-%'

只需分隔第三列并计算第一个数字:)只需分隔第三列并计算第一个数字:)
SELECT *
FROM WF_Account
WHERE CompanyId = 'jba'
AND CHARINDEX('-', Account) = 4
Select * From WF_Account Where CompanyId = 'jba' and Account Like '_-%';
Select * From WF_Account Where CompanyId = 'jba' and Account Like '__-%';
Select * From WF_Account Where CompanyId = 'jba' and Account Like '___-%';
select * from WF_Account
-- Hypen after one digit
where Account like '[0-9]-%'
-- Hypen after two digits
or Account  like '[0-9][0-9]-%'
-- Hypen after three digits
or Account  like '[0-9][0-9][0-9]-%'