क्या SQL सर्वर में कोई फ़ंक्शन है जो एकवचन से बहुवचन रूप में संज्ञा को बदलता है?एसक्यूएल फ़ंक्शन को बहुवचन बनाने के लिए
उत्तर
यह फ़ंक्शन SQL सर्वर में मौजूद नहीं है।
नहीं, लेकिन यदि आपके पास जांच करने के लिए शब्दों का सीमित सेट है तो इसके लिए एक टेबल बनाना बहुत आसान होगा।
उदाहरण:
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
जोड़ें और यदि यह तब बहुवचन को देखे।
एसक्यूएल के पास ऐसा कुछ भी नहीं है - लेकिन आप .NET PluralizationService का उपयोग .NET 4 में पेश करने का प्रयास कर सकते हैं - वही कार्यक्षमता जो इकाई फ्रेमवर्क नामों को ऑब्जेक्ट करने के लिए तालिका नामों को बहुवचन/एकवचन करने के लिए उपयोग करती है।
आपको बहुवचन सेवाओं में टैप करने के लिए एक एसक्यूएल-सीएलआर असेंबली लिखनी होगी, लेकिन यह निश्चित रूप से एक काम करने योग्य चीज़ की तरह दिखता है!
फ़ंक्शन SQL सर्वर में मौजूद नहीं है, जैसा कि @ एएफ ने उल्लेख किया है। एक जगह जो मुझे पता है कि यह मौजूदा इकाई फ्रेमवर्क 4+ में है। बहुवचन वस्तु वास्तव में instantiated and used हो सकती है।
एसक्यूएल में सीएलआर कोड चलाने की क्षमता है - एसक्यूएल सीएलआर के माध्यम से। मुख्य समस्या यह है कि एसक्यूएल सीएलआर .NET Framework 3.5 तक ही सीमित है। इसलिए आपको या तो कुछ .net 4 कोड लिखने की आवश्यकता होगी जो आपकी टेबल पर चलती हैं। वैकल्पिक रूप से, आप एक उत्पाद का उपयोग कर सकते हैं जैसे रिफ्लेक्टर और रिवर्स इंजीनियर 3.5 संगत संस्करण और इसे SQL सर्वर के अंदर चलाएं।
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
मैं जानता हूँ कि यह एक पुरानी धागा है, लेकिन मैं वैसे भी पोस्ट होगा सोचा। मार्टिन ने जो शुरू किया, उसके आधार पर, मैंने इसे विस्तारित किया और अब तक यह ठीक काम कर रहा है। मैं नहीं कहूंगा कि यह सही है। इसका उपयोग टेबल नामों को बहुवचन के लिए किया जाता है, इसलिए इसे बहुत नियंत्रित किया जाता है
- 1. एसक्यूएल स्क्रिप्ट सम्मिलित स्क्रिप्ट बनाने के लिए
- 2. एसक्यूएल नया डेटाबेस बनाने के लिए कब?
- 3. रंग पहियों बनाने के लिए फ़ंक्शन
- 4. उद्देश्य-सी के लिए अंतर्राष्ट्रीय बहुवचन लिब?
- 5. एसक्यूएल बनाने के लिए एसक्यूएल सदस्यता प्रदाता उपयोगकर्ता
- 6. गणना के लिए एकवचन या बहुवचन?
- 7. एंटिटी फ्रेमवर्क के लिए बहुवचन को कैसे अनुकूलित करें 5
- 8. एसक्यूएल फ़ंक्शन
- 9. एसक्यूएल फ़ंक्शन
- 10. स्वरूपित बहुवचन
- 11. एसक्यूएल फ़ंक्शन
- 12. बुद्धिमान बहुवचन हमेशा बुद्धिमान?
- 13. रेल मचान बहुवचन "कैफे"
- 14. ओरेकल एसक्यूएल लोडर नियंत्रण फ़ाइल बनाने के लिए यूजर इंटरफेस
- 15. सिंक्रोनस बनाने के लिए एक असीमित जावास्क्रिप्ट फ़ंक्शन को लपेटने के लिए पैटर्न
- 16. PHP फ़ंक्शन सरणी से क्वेरी स्ट्रिंग बनाने के लिए
- 17. gettext में एकाधिक बहुवचन रूपों()
- 18. एसक्यूएल। एसपी या फ़ंक्शन को शुक्रवार
- 19. अंग्रेजी शब्द को बहुवचन करने के लिए एनएसएसटींग के लिए श्रेणी या वेब एपीआई?
- 20. Enum नामकरण कन्वेंशन - बहुवचन
- 21. पीएल/एसक्यूएल फ़ंक्शन पैरामीटर
- 22. एकमात्र और बहुवचन
- 23. Django टेम्पलेट {% trans%} बहुवचन
- 24. स्लग उत्पन्न करने के लिए टी-एसक्यूएल फ़ंक्शन?
- 25. पीएल/एसक्यूएल फ़ंक्शन
- 26. क्या हमें चर के लिए बहुवचन नामों से बचना चाहिए?
- 27. एकवचन शब्द या बहुवचन शब्दों के लिए सर्वोत्तम अभ्यास (ओं)?
- 28. रूसी स्थानीयकरण के लिए बहुवचन रूप का उपयोग
- 29. एक शब्दकोश के लिए एकवचन या बहुवचन पहचानकर्ता?
- 30. क्या रेल में बहुवचन के लिए एक सहायक विधि है?
बहुवचन की अनियमितता के कारण यह मुश्किल होगा (अंग्रेजी में, वैसे भी)। बिल्ली-> बिल्लियों, माउस-> चूहे, गुज़-> गीस, व्यक्ति-> लोग ... –
किस भाषा में? :) निश्चित रूप से, मानक मौजूद नहीं है। –
क्या कोई SQL फ़ंक्शन है जो किसी दिए गए भाषा के लिए व्याकरण को समझता है ??? नहीं :) – MatBailie