SOUNDEX (Transact-SQL)SOUNDEX (Transact-SQL)

適用対象: ○SQL Server ○Azure SQL Database ○Azure SQL Data Warehouse ○Parallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

2 つの文字列の類似性を評価する 4 文字 (SOUNDEX) コードを返します。Returns a four-character (SOUNDEX) code to evaluate the similarity of two strings.

トピック リンク アイコン Transact-SQL 構文表記規則Topic link icon Transact-SQL Syntax Conventions


SOUNDEX ( character_expression )  


文字データの英数字です。Is an alphanumeric expression of character data. character_expression には定数、変数、または列を指定できます。character_expression can be a constant, variable, or column.

戻り値の型Return Types



SOUNDEX では、英数字の文字列が、読み上げ時の文字列の発音方法に基づいた 4 文字コードに変換されます。SOUNDEX converts an alphanumeric string to a four-character code that is based on how the string sounds when spoken. コードの最初の文字の最初の文字は character_expression, 、大文字に変換されます。The first character of the code is the first character of character_expression, converted to upper case. コードの 2 番目から 4 番目までの文字は式の中の文字を表す数字です。The second through fourth characters of the code are numbers that represent the letters in the expression. A、E、I、O、U、H、W、Y の各文字は、文字列の先頭の文字である場合を除き無視されます。The letters A, E, I, O, U, H, W, and Y are ignored unless they are the first letter of the string. 4 文字コードを生成するために、必要に応じて、末尾にゼロが追加されます。Zeroes are added at the end if necessary to produce a four-character code. SOUNDEX コードの詳細については、次を参照してください。 The Soundex Indexing Systemです。For more information about the SOUNDEX code, see The Soundex Indexing System.

さまざまな文字列からの SOUNDEX コードを比較して、読み上げ時の文字列の発音がどの程度類似しているかを確認できます。SOUNDEX codes from different strings can be compared to see how similar the strings sound when spoken. DIFFERENCE 関数では 2 つの文字列に対して SOUNDEX が実行され、これらの文字列について SOUNDEX コードがどの程度類似しているかを示す整数が返されます。The DIFFERENCE function performs a SOUNDEX on two strings, and returns an integer that represents how similar the SOUNDEX codes are for those strings.

SOUNDEX は照合順序に依存します。SOUNDEX is collation sensitive. 文字列関数は入れ子にすることができます。String functions can be nested.

SOUNDEX の互換性SOUNDEX Compatibility

以前のバージョンの SQL ServerSQL Server では、SOUNDEX 関数で SOUNDEX のルールのサブセットが適用されていました。In previous versions of SQL ServerSQL Server, the SOUNDEX function applied a subset of the SOUNDEX rules. データベースの互換性レベルが 110 以上の場合、SQL ServerSQL Server ではより完全なルール セットが適用されます。Under database compatibility level 110 or higher, SQL ServerSQL Server applies a more complete set of the rules.

互換性レベル 110 以上へのアップグレード後に、SOUNDEX 関数を使用するインデックス、ヒープ、または CHECK 制約の再構築が必要になる場合があります。After upgrading to compatibility level 110 or higher, you may need to rebuild the indexes, heaps, or CHECK constraints that use the SOUNDEX function.

  • SOUNDEX で定義された保存される計算列を含むヒープは、ALTER TABLE <table> REBUILD ステートメントを実行してヒープが再構築されるまでクエリできません。A heap that contains a persisted computed column defined with SOUNDEX cannot be queried until the heap is rebuilt by running the statement ALTER TABLE <table> REBUILD.

  • SOUNDEX で定義された CHECK 制約は、アップグレード時に無効にされます。CHECK constraints defined with SOUNDEX are disabled upon upgrade. 無効になった制約を有効にするには、ALTER TABLE <table> WITH CHECK CHECK CONSTRAINT ALL ステートメントを実行します。To enable the constraint, run the statement ALTER TABLE <table> WITH CHECK CHECK CONSTRAINT ALL.

  • SOUNDEX で定義された保存される計算列を含むインデックス (インデックス付きビューを含む) は、ALTER INDEX ALL ON <object> REBUILD ステートメントを実行してインデックスが再構築されるまでクエリできません。Indexes (including indexed views) that contain a persisted computed column defined with SOUNDEX cannot be queried until the index is rebuilt by running the statement ALTER INDEX ALL ON <object> REBUILD.


次の例では、SOUNDEX 関数、およびこれに関連した DIFFERENCE 関数を示しています。The following example shows the SOUNDEX function and the related DIFFERENCE function. 最初の例では、標準 SOUNDEX 値がすべての子音に対して返されます。In the first example, the standard SOUNDEX values are returned for all consonants. 母音、文字 SOUNDEX、2 文字の連続、および文字 Smith は含まれないため、Smythey に対する h では同じ結果が返されます。Returning the SOUNDEX for Smith and Smythe returns the same SOUNDEX result because all vowels, the letter y, doubled letters, and the letter h, are not included.

-- Using SOUNDEX  
SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe');  

以下に結果セットを示します。Here is the result set. Latin1_General の照合順序に有効です。Valid for a Latin1_General collation.

----- -----   
S530  S530    
(1 row(s) affected)  

DIFFERENCE 関数は、SOUNDEX パターンの結果を比較します。The DIFFERENCE function compares the difference of the SOUNDEX pattern results. 次の例では、母音のみが異なる 2 つの文字列を示します。The following example shows two strings that differ only in vowels. 返される値は、類似性が最も高い 4 です。The difference returned is 4, the lowest possible difference.

SELECT DIFFERENCE('Smithers', 'Smythers');  

以下に結果セットを示します。Here is the result set. Latin1_General の照合順序に有効です。Valid for a Latin1_General collation.

(1 row(s) affected)  

次の例では子音が異なるため、類似性が低い 2 が返されます。In the following example, the strings differ in consonants; therefore, the difference returned is 2, the greater difference.

SELECT DIFFERENCE('Anothers', 'Brothers');  

以下に結果セットを示します。Here is the result set. Latin1_General の照合順序に有効です。Valid for a Latin1_General collation.

(1 row(s) affected)  

参照See Also

文字列関数 (Transact-SQL) String Functions (Transact-SQL)