Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

Initcap 4 वर्णों से छोटे शब्दों को छोड़ें

अंतर्निहित प्रश्न का सरल उत्तर नहीं हो सकता है। मुझे लगता है कि आप डच में पतों को ठीक से बड़ा करने की कोशिश कर रहे हैं और यह प्रश्न यह अन्य प्रश्न कल से।

प्रश्नों को मिलाकर, अब तक कम से कम तीन विशेष मामले हैं:

'S GRAVENHAGE   =>  's Gravenhage
IJSLAND         =>  IJsland
SON EN BREUGEL  =>  Son en Breugel

INITCAP और यहां तक ​​कि NLS_INITCAP('...', 'NLS_SORT=xDutch') उन्हें ठीक से संभालने में विफल। कोडिंग शुरू करने से पहले आपको सभी आवश्यकताओं को एकत्र करना चाहिए। क्या डच पूंजीकरण के लिए केवल यही नियम हैं, या और भी बहुत कुछ हैं?

अब तक पोस्ट किए गए उत्तर एक विशिष्ट अपवाद को हल करने में मदद कर सकते हैं। लेकिन संभावना है कि आप केवल नियमित अभिव्यक्तियों को जोड़ नहीं सकते हैं और उन सभी को हल कर सकते हैं। आप यहां अधिक टॉप-डाउन दृष्टिकोण अपनाना चाह सकते हैं।

अपडेट करें

वोली के विचारों के आधार पर, सभी मौजूदा नामों का उपयोग करके समस्या को बलपूर्वक बल देना संभव है। NLS_INITCAP अकेले 95% समय काम करता है। इस लिंक सभी 25 असाधारण मामलों की सूची बनाना संभव है।

DECODE . बनाने के लिए इस कथन को एक बार चलाएँ सभी गैर-तुच्छ मामलों को संभालने के लिए अभिव्यक्ति:

--Build decode for UPDATE.
select
  --Start the decode
  'decode(upper(name),'||
  --List all the exceptions.  Single quotes are a mess, no way around it.
  listagg(
    --Upper case version to match
    ''''||upper(replace(column_value, '''', ''''''))||
    --Pre-defined init-capped version
    ''','''||replace(column_value, '''', '''''')||''''
    , ','||chr(10)
  )
  within group (order by column_value)
  ||
  --Default to NLS_INITCAP
  ',nls_initcap(name, ''NLS_SORT=xDutch''))'
from table(sys.odcivarchar2list('Bellingwedde','Menterwolde','Oldambt','Pekela','Stadskanaal','Veendam','Vlagtwedde','Appingedam','Delfzijl','Loppersum','Bedum','Ten Boer','Eemsmond','Groningen','Grootegast','Haren','Hoogezand-Sappemeer','Leek','De Marne','Marum','Slochteren','Winsum','Zuidhorn','Achtkarspelen','Ameland','het Bildt','Boarnsterhim','Dantumadiel','Dongeradeel','Ferwerderadiel','Franekeradeel','Harlingen','Kollumerland en Nieuwkruisland','Leeuwarden','Leeuwarderadeel','Littenseradiel','Menaldumadeel','Schiermonnikoog','Terschelling','Tytsjerksteradiel','Vlieland','Bolsward','Gaasterlân-Sleat','Lemsterland','Nijefurd','Sneek','Wûnseradiel','Wymbritseradiel','Heerenveen','Ooststellingwerf','Opsterland','Skarsterlân','Smallingerland','Weststellingwerf','Aa en Hunze','Assen','Midden-Drenthe','Noordenveld','Tynaarlo','Borger-Odoorn','Coevorden','Emmen','Hoogeveen','Meppel','Westerveld','De Wolden','Dalfsen','Hardenberg','Kampen','Ommen','Staphorst','Steenwijkerland','Zwartewaterland','Zwolle','Deventer','Olst-Wijhe','Raalte','Almelo','Borne','Dinkelland','Enschede','Haaksbergen','Hellendoorn','Hengelo','Hof van Twente','Losser','Oldenzaal','Rijssen-Holten','Tubbergen','Twenterand','Wierden','Apeldoorn','Barneveld','Ede','Elburg','Epe','Ermelo','Harderwijk','Hattem','Heerde','Nijkerk','Nunspeet','Oldebroek','Putten','Scherpenzeel','Voorst','Wageningen','Buren','Culemborg','Geldermalsen','Lingewaal','Maasdriel','Neder-Betuwe','Neerijnen','Tiel','West Maas en Waal','Zaltbommel','Aalten','Berkelland','Bronckhorst','Brummen','Doetinchem','Lochem','Montferland','Oost Gelre','Oude IJsselstreek','Winterswijk','Zutphen','Arnhem','Beuningen','Doesburg','Druten','Duiven','Groesbeek','Heumen','Lingewaard','Millingen aan de Rijn','Nijmegen','Overbetuwe','Renkum','Rheden','Rijnwaarden','Rozendaal','Ubbergen','Westervoort','Wijchen','Zevenaar','Almere','Dronten','Lelystad','Noordoostpolder','Urk','Zeewolde','Abcoude','Amersfoort','Baarn','De Bilt','Breukelen','Bunnik','Bunschoten','Eemnes','Houten','IJsselstein','Leusden','Loenen','Lopik','Maarssen','Montfoort','Nieuwegein','Oudewater','Renswoude','Rhenen','De Ronde Venen','Soest','Utrecht','Utrechtse Heuvelrug','Veenendaal','Vianen','Wijk bij Duurstede','Woerden','Woudenberg','Zeist','Andijk','Anna Paulowna','Drechterland','Enkhuizen','Harenkarspel','Den Helder','Hoorn','Koggenland','Medemblik','Niedorp','Opmeer','Schagen','Stede Broec','Texel','Wervershoof','Wieringen','Wieringermeer','Zijpe','Alkmaar','Bergen (NH.)','Heerhugowaard','Heiloo','Langedijk','Schermer','Beverwijk','Castricum','Heemskerk','Uitgeest','Velsen','Bloemendaal','Haarlem','Haarlemmerliede en Spaarnwoude','Heemstede','Zandvoort','Wormerland','Zaanstad','Aalsmeer','Amstelveen','Amsterdam','Beemster','Diemen','Edam-Volendam','Graft-De Rijp','Haarlemmermeer','Landsmeer','Oostzaan','Ouder-Amstel','Purmerend','Uithoorn','Waterland','Zeevang','Blaricum','Bussum','Hilversum','Huizen','Laren','Muiden','Naarden','Weesp','Wijdemeren','Hillegom','Kaag en Braassem','Katwijk','Leiden','Leiderdorp','Lisse','Noordwijk','Noordwijkerhout','Oegstgeest','Teylingen','Voorschoten','Zoeterwoude','''s-Gravenhage','Leidschendam-Voorburg','Pijnacker-Nootdorp','Rijswijk','Wassenaar','Zoetermeer','Delft','Midden-Delfland','Westland','Alphen aan den Rijn','Bergambacht','Bodegraven','Boskoop','Gouda','Nieuwkoop','Reeuwijk','Rijnwoude','Schoonhoven','Vlist','Waddinxveen','Albrandswaard','Barendrecht','Bernisse','Binnenmaas','Brielle','Capelle aan den IJssel','Cromstrijen','Dirksland','Goedereede','Hellevoetsluis','Korendijk','Krimpen aan den IJssel','Lansingerland','Maassluis','Middelharnis','Nederlek','Oostflakkee','Oud-Beijerland','Ouderkerk','Ridderkerk','Rotterdam','Rozenburg','Schiedam','Spijkenisse','Strijen','Vlaardingen','Westvoorne','Zuidplas','Alblasserdam','Dordrecht','Giessenlanden','Gorinchem','Graafstroom','Hardinxveld-Giessendam','Hendrik-Ido-Ambacht','Leerdam','Liesveld','Nieuw-Lekkerland','Papendrecht','Sliedrecht','Zederik','Zwijndrecht','Hulst','Sluis','Terneuzen','Borsele','Goes','Kapelle','Middelburg','Noord-Beveland','Reimerswaal','Schouwen-Duiveland','Tholen','Veere','Vlissingen','Bergen op Zoom','Breda','Drimmelen','Etten-Leur','Geertruidenberg','Halderberge','Moerdijk','Oosterhout','Roosendaal','Rucphen','Steenbergen','Woensdrecht','Zundert','Aalburg','Alphen-Chaam','Baarle-Nassau','Dongen','Gilze en Rijen','Goirle','Hilvarenbeek','Loon op Zand','Oisterwijk','Tilburg','Waalwijk','Werkendam','Woudrichem','Bernheze','Boekel','Boxmeer','Boxtel','Cuijk','Grave','Haaren','''s-Hertogenbosch','Heusden','Landerd','Lith','Maasdonk','Mill en Sint Hubert','Oss','Schijndel','Sint Anthonis','Sint-Michielsgestel','Sint-Oedenrode','Uden','Veghel','Vught','Asten','Bergeijk','Best','Bladel','Cranendonck','Deurne','Eersel','Eindhoven','Geldrop-Mierlo','Gemert-Bakel','Heeze-Leende','Helmond','Laarbeek','Nuenen, Gerwen en Nederwetten','Oirschot','Reusel-De Mierden','Someren','Son en Breugel','Valkenswaard','Veldhoven','Waalre','Beesel','Bergen (L.)','Gennep','Horst aan de Maas','Mook en Middelaar','Peel en Maas','Venlo','Venray','Echt-Susteren','Leudal','Maasgouw','Nederweert','Roerdalen','Roermond','Weert','Beek','Brunssum','Eijsden','Gulpen-Wittem','Heerlen','Kerkrade','Landgraaf','Maastricht','Margraten','Meerssen','Nuth','Onderbanken','Schinnen','Simpelveld','Sittard-Geleen','Stein','Vaals','Valkenburg aan de Geul','Voerendaal'))
where column_value <> nls_initcap(column_value, 'NLS_SORT=xDutch');

UPDATE बनाने के लिए उस कथन के परिणाम का उपयोग करें इस तरह:

--Update names to properly init-capped name, as defined by:
--http://epp.eurostat.ec.europa.eu/portal/page/portal/nuts_nomenclature/local_administrative_units
update location
set name = 
  decode(upper(name),'''S-GRAVENHAGE','''s-Gravenhage',
  '''S-HERTOGENBOSCH','''s-Hertogenbosch',
  'AA EN HUNZE','Aa en Hunze',
  'ALPHEN AAN DEN RIJN','Alphen aan den Rijn',
  'BERGEN (NH.)','Bergen (NH.)',
  'BERGEN OP ZOOM','Bergen op Zoom',
  'CAPELLE AAN DEN IJSSEL','Capelle aan den IJssel',
  'GILZE EN RIJEN','Gilze en Rijen',
  'HAARLEMMERLIEDE EN SPAARNWOUDE','Haarlemmerliede en Spaarnwoude',
  'HOF VAN TWENTE','Hof van Twente',
  'HORST AAN DE MAAS','Horst aan de Maas',
  'KAAG EN BRAASSEM','Kaag en Braassem',
  'KOLLUMERLAND EN NIEUWKRUISLAND','Kollumerland en Nieuwkruisland',
  'KRIMPEN AAN DEN IJSSEL','Krimpen aan den IJssel',
  'LOON OP ZAND','Loon op Zand',
  'MILL EN SINT HUBERT','Mill en Sint Hubert',
  'MILLINGEN AAN DE RIJN','Millingen aan de Rijn',
  'MOOK EN MIDDELAAR','Mook en Middelaar',
  'NUENEN, GERWEN EN NEDERWETTEN','Nuenen, Gerwen en Nederwetten',
  'PEEL EN MAAS','Peel en Maas',
  'SON EN BREUGEL','Son en Breugel',
  'VALKENBURG AAN DE GEUL','Valkenburg aan de Geul',
  'WEST MAAS EN WAAL','West Maas en Waal',
  'WIJK BIJ DUURSTEDE','Wijk bij Duurstede',
  'HET BILDT','het Bildt',
  nls_initcap(name, 'NLS_SORT=xDutch'));


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle SQL WHERE क्लॉज में (+) चिन्ह का क्या अर्थ है?

  2. अतिरिक्त पंक्तियाँ प्राप्त करना - लेफ्ट जॉइन का उपयोग करके 3 टेबल में शामिल होने के बाद

  3. AWS RDS Oracle उदाहरण पर संग्रह लॉग फ़ाइलों को कैसे हटाएं

  4. Oracle डेटाबेस में सभी कार्यों की सूची बनाएं

  5. विशेष तिथि प्राप्त करने के लिए Oracle क्वेरी