名詞を単数形から複数形に変更する関数はSQL Serverにはありますか?名詞を複数形にするSql関数
答えて
SQL Serverにその関数は存在しません。
いいえ、確認する単語の数が限られている場合は、テーブルを作成するのはかなり簡単です。
例:
CREATE TABLE dbo.Plurals
(
id int IDENTITY,
singular varchar(100),
plural varchar(100)
)
INSERT INTO dbo.Plurals
VALUES
('cat', 'cats'),
('goose', 'geese'),
('man', 'men'),
('question', 'questions')
また、あなたはテーブルだけの例外、s
の単純な加算と複数形することはできませんつまり、言葉も作ることができます - あなたはその上EXISTS
チェックを行うことができますテーブルがない場合はs
を追加し、複数の場合はルックアップします。
SQL自体にはこのようなものはありませんが、.NET 4で導入された.NET PluralizationServiceを使用することもできます。Entity Frameworkがテーブル名をオブジェクト名に複数化/特異化するのと同じ機能です。
複数化サービスを活用するには、SQL-CLRアセンブリを作成する必要がありますが、これは間違いなく実行可能なもののようです。
@aFが指摘しているように、この関数はSQL Serverに存在しません。存在する場合、私が知っている1つの場所は、Entity Framework 4+です。複数化オブジェクトは、実際にはinstantiated and usedとすることができる。
SQLには、SQL CLRを介してCLRコードを実行する能力があります。主な問題は、SQL CLRが.NET Framework 3.5に限定されていることです。したがって、あなたのテーブルで動作する.net 4コードを書く必要があります。また、Reflectorのような製品を使用し、3.5互換バージョンをリバースエンジニアリングしてSQL Server内で実行することもできます。
CREATE FUNCTION dbo.Pluralize
(
@noun nvarchar(50)
)
RETURNS nvarchar(50)
AS
BEGIN
DECLARE @QueryString nvarchar(4000)
SET @QueryString = N'FORMSOF(INFLECTIONAL,"' + @noun + N'")'
RETURN
(SELECT TOP 1 display_term
FROM sys.dm_fts_parser(@QueryString,1033,0,0))
END
GO
SELECT noun,
dbo.Pluralize(noun)
FROM (VALUES('cat'),
('mouse'),
('goose'),
('person'),
('man'),
('datum')) nouns(noun)
戻り
noun
------ ------------------------------
cat cats
mouse mice
goose geese
person persons
man men
datum data
残念ながらそれだけで名詞のためのTOP 1
拡張用語が複数形であるという観察に依存しています。私はこれがどこにでも書かれているのではないかと疑う。
これは表示に使用しますか?以下のような
サムシング/ "の検索返された4つの結果" "あなたの検索では、1つの結果を返されましたか"?
「はい」の場合は、そのようにはしません。
すべての特殊なケース(正しくは複数の言語ではありません)で正しくこれを行う関数を見つけたり書き込んだりするのはほとんど不可能です。必要なテキストをそれぞれ単数形と複数形に一度格納することはあまり良くありません。仕事で
、私はこのような動的に生成された文章の複数の言語やたくさんの多くを扱っている、と私は完全にすべてで単数/複数形の区別を回避することが管理する最も簡単な解決策であることが判明:
「この検索の結果の数:1」
DECLARE @PluralVersion nvarchar(128) = ''
DECLARE @TableName nvarchar(128) = 'MyTableName'
DECLARE @NounVersions TABLE(Term nvarchar(128) NOT NULL)
DECLARE @QueryString nvarchar(4000) SET @QueryString = N'FORMSOF(INFLECTIONAL,"' + @TableName + N'")'
INSERT INTO @NounVersions
SELECT TOP 10 display_term FROM sys.dm_fts_parser(@QueryString,1033,0,0)
SELECT TOP 1 @PluralVersion = Term FROM @NounVersions WHERE Term Not Like '%''%' AND RIGHT(Term,1) = 's'
SET @PluralVersion = UPPER(LEFT(@PluralVersion,1))+LOWER(SUBSTRING(@PluralVersion,2,LEN(@PluralVersion)))
SELECT @PluralVersion
私は、これは古いスレッドですけど、私はとにかく投稿するだろうと思いました。 Martinが始めたことに基づいて、私はそれを拡張し、それまではOKの仕事をしています。私はそれが完璧だとは言いません。これはテーブル名を複数形にするために使用されているため、非常に制御されています。
- 1. 名詞のリストで複数形を削除するには?
- 2. 複数の名詞を複数形または単独形にするにはどうすればよいですか?
- 3. 単数のフランス語名詞を複数形に変換する関数が正しく動作しません(正規表現)
- 4. WordNetによる名詞、動詞、形容詞、副詞の平均多項式を計算する
- 5. テキストから名詞+名詞または(adj |名詞)+名詞を抽出する
- 6. SimpleNLG - 名詞が単数形か複数形かをSimpleNLGが自動的に検出することは可能ですか?
- 7. SQL Server(T-SQL):コールスカラー関数を複数回避ける
- 8. 複合検索関数SQL
- 9. 複数の名前のない関数を持つ関数型
- 10. 固有名詞にマッチする正規表現+数字
- 11. SQL内の複数の集計関数
- 12. Web SQLゲーム - 余分な引数を匿名関数に渡す
- 13. LilyPondの歌詞のXSL関数
- 14. Delphi 2006の重複する関数名
- 15. 命名規則 - コレクションの複数形
- 16. 複数形を単数形に変換する
- 17. C#の定数クラスの命名規則:複数形か単数形か?
- 18. 複数の日付形式を受け入れるjavascript関数
- 19. Cloud関数からDataflowに複数のファイル名を渡す
- 20. sql - 複数の値をテストする関数
- 21. SQL STUFF関数が複数の行をロールアップする
- 22. SQL Server:パラメータ名を持つコール関数
- 23. SQL Serverのシステム関数名を選択
- 24. 複合関数のMATLAB線形マッピング
- 25. NLPを使用して名詞句で複数の名前付きエンティティタイプを認識する
- 26. プロローグでNLP動詞を名詞にする
- 27. シンボルを複数形にする方法
- 28. 複数のSQLテーブルの列名のクエリ
- 29. 単数形と複数形のAIMLパターン
- 30. カスタムホバーテキスト、単数形/複数形(plotly.js)
複数の不規則性のために、それは難しいでしょう(とにかく英語で)。猫 - >猫、マウス - >マウス、ガチョウ - >ガチョウ、人 - >人... –
どの言語で? :)確かに、標準は存在しません。 –
与えられた言語の文法を理解するSQL関数はありますか?いいえ:) – MatBailie