1

私はこのようなデータベースに次のようなレコードを持っています。AccountDetailsテーブルの最後の列であるAccount列を検索したいと思います。のような条件で検索したい

1-最初の番号の後にハイフンを含むホースレコードを検索したい(これは何でもかまいません)
12- 2番目の番号の後にハイフンを含むレコードを検索したい(これは何でもかまいません)
123-2番目の番号の後にハイフンを含むレコードを検索したい3番目の数字の後のハイフン(これは何でもかまいません)

AccountDetailテーブル

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 '%-%'
4

4 に答える 4

4

実行しているSQLのバージョンがわからない。

CHARINDEXただし、SQL Serverでは、またはsql2012で使用できます。FINDSTRING

例えば

WHERE CHARINDEX('-', Col1) > 0

編集:

PATINDEXパターンの文字列の位置を返すwhichを使用することもできます。

かもね:

WHERE PATINDEX('%-', Col1) <= 3
于 2012-04-25T06:58:30.803 に答える
2

このクエリを試すことができます:

1-最初の番号の後にハイフンを含むレコードを検索したい(これは何でもかまいません)

SELECT *
FROM WF_Account
WHERE CompanyId = 'jba'
AND CHARINDEX('-', Account) = 2

12-2番目の数字の後にハイフンを含むレコードを検索したい(これは何でもかまいません)

SELECT *
FROM WF_Account
WHERE CompanyId = 'jba'
AND CHARINDEX('-', Account) = 3

123-3番目の数字の後にハイフンを含むレコードを検索したい(これは何でもかまいません)

SELECT *
FROM WF_Account
WHERE CompanyId = 'jba'
AND CHARINDEX('-', Account) = 4
于 2012-04-25T07:13:22.880 に答える
1

正規表現を使用してこれはどうですか。

1-最初の番号の後にハイフンを含むホースレコードを検索したい(これは何でもかまいません)

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

12-2番目の数字の後にハイフンを含むレコードを検索したい(これは何でもかまいません)

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

123-3番目の数字の後にハイフンを含むレコードを検索したい(これは何でもかまいません)

Select * From WF_Account Where CompanyId = 'jba' and Account Like '___-%';
于 2012-04-25T07:23:45.713 に答える
0

LIKEの[]文字セットオプションを使用します。文字セットにハイフンを入れる必要がある場合は、ESCAPE句も参照してください。

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]-%'
于 2015-08-03T08:01:56.963 に答える