ከሕብረቁምፊዎች ጋር ለመስራት MS sql ተግባራት። Transact-SQL ተግባራት. በ sql መጠይቆች ውስጥ የሕብረቁምፊ ርዝመትን መወሰን

በዚህ ክፍል ውስጥ በPL/SQL ቋንቋ በጥያቄዎች እና በፕሮግራም ኮድ ውስጥ ጥቅም ላይ ሊውሉ ከሚችሉ የጽሑፍ መረጃ ጋር ስለ መሥራት ተግባራት እንነጋገራለን ።

ተግባር CONCAT(strl፣ str2)

ይህ ተግባር የ strl እና str2 ገመዶችን ያገናኛል. ከክርክርዎቹ አንዱ NULL ከሆነ፣ እንደ ባዶ ሕብረቁምፊ ይቆጠራል። ሁለቱም ነጋሪ እሴቶች ባዶ ከሆኑ፣ ተግባሩ NULLን ይመልሳል። ለምሳሌ፥

CONCAT ን ይምረጡ ("ካህኑ ውሻ ነበረው") x1,
በጣም የተገናኘ"፣ NULL) x2፣
CONCAT( NULL፣ "ሙከራ") x3፣
CONCAT(NULL፣ NULL) x4
ከባለሁለት

ካህኑ ውሻ ነበረው

ሕብረቁምፊዎችን ለማጣመር፣ Oracle ከCONCAT ተግባር ጋር የሚመሳሰል ልዩ የማገናኘት ኦፕሬተርን ይደግፋል።

CONCAT ("ካህኑ "ውሻ ነበረው") x1፣ "ቄሱ" || "ውሻ ነበረው" x2
ከባለሁለት

የኮንኬቴሽን ኦፕሬተር "||"፣ የCONCAT ተግባርን ከመጥራት ጋር እኩል የሆነ፣ በሒሳብ ስራዎች ውስጥ ከሚሠራው "+" ኦፕሬተር ጋር መምታታት የለበትም። በOracle ውስጥ እነዚህ የተለያዩ ኦፕሬተሮች ናቸው፣ ነገር ግን በአውቶማቲክ ዓይነት መውሰድ ምክንያት፣ ስውር ስህተቶች ሊኖሩ ይችላሉ፣ ለምሳሌ፡-

"5" + "3" x1 ን ይምረጡ
ከባለሁለት

በዚህ አጋጣሚ የቁጥር እሴት 8 ከጽሑፍ ሕብረቁምፊ "53" ይልቅ ይመለሳል. ምክንያቱም Oracle የሂሳብ ኦፕሬተርን "+" ሲያገኝ Oracle NUMBER ለመተየብ በራስ-ሰር ክርክሮችን ለማውጣት ይሞክራል።

ተግባር LOWER(str)

የ LOWER ተግባር በstr ውስጥ ያሉትን ሁሉንም ቁምፊዎች ወደ ንዑስ ሆሄ ይለውጣል። ለምሳሌ፥

የታችኛውን ("TeXt DATA") ይምረጡ X
ከባለሁለት

ተግባርየላይኛው (ስተር)

የላይኛው ተግባር በstring str ውስጥ ያሉትን ሁሉንም ቁምፊዎች ወደ አቢይ ሆሄ ይለውጣል። ለምሳሌ፥

የላይኛውን ይምረጡ("Text DATA") X
ከባለሁለት

INITCAP(str) ተግባር

ሕብረቁምፊውን ወደ አቢይ ሆሄ ከተቀየሩ የሁሉም ቃላት የመጀመሪያ ፊደላት ጋር ይመልሳል። ሪፖርቶችን በሚገነቡበት ጊዜ ተግባሩ ሙሉውን ስም ለመቅረጽ ምቹ ነው. ለምሳሌ፥

INITCAPCIVANOV ፒተር ሲዶሮቪች ምረጥ) X
ከባለሁለት

ተግባራትLTRIM(str [, አዘጋጅ])እናRTRIM(str [, አዘጋጅ])

የLTRIM ተግባር ሁሉንም ቁምፊዎች ከሕብረቁምፊው መጀመሪያ አንስቶ እስከ መጀመሪያው ቁምፊ ድረስ ባለው ስብስብ ውስጥ ከሌለ ያስወግዳል። በነባሪ፣ ስብስብ አንድ ቦታ ይይዛል እና ላይገለጽ ይችላል። የRTRIM ተግባር ከ LTRIM ጋር ተመሳሳይ ነው፣ ነገር ግን ከሕብረቁምፊው መጨረሻ የሚጀምሩ ቁምፊዎችን ያስወግዳል። ጥቂት ምሳሌዎችን እንመልከት፡-

LTRIM("Text DATA") X1 ይምረጡ፣
LTRIM(" _ # TeXt DATA"፣ "#_") X2፣
LTRIM(" 1234567890 TeXt DATA"፣ "1234567890") X3
ከባለሁለት

ተግባር REPLACE(str፣ search_str፣ [፣መተካት_str])

የREPLACE ተግባር በstring str ውስጥ የፍለጋ_str ጥለትን ይፈልጋል እና እያንዳንዱን ክስተት በ replace_str ይተካል። በነባሪ፣ replace_str ባዶ ሕብረቁምፊ ነው፣ስለዚህ REPLACEን በሁለት ነጋሪ እሴቶች መጥራት የተገኙትን ሁሉንም ክስተቶች ያስወግዳል። የንዑስ ሕብረቁምፊ ፍለጋ ኬዝ ነው። ለምሳሌ፥

ምትክ ምረጥ("ካህኑ ውሻ ነበረው""ውሻ""ድመት") x1፣
መተካት("ካህኑ ክፉ ውሻ ነበረው""ክፉ") x2፣
ተካ("ካህኑ ውሻ ነበረው""ውሻ"፣"ድመት") x3
ከባለሁለት

ካህኑ ድመት ነበረው

ካህኑ ውሻ ነበረው

ካህኑ ውሻ ነበረው

ተግባር ተርጉም(str፣ ከ_ጭምብል፣ ወደ_ጭንብል)

የTRANSLATE ተግባር string strን ይተነተን እና በ from_mask ሕብረቁምፊ ውስጥ የሚታዩትን ሁሉንም ቁምፊዎች ከ to_mask በሚመጡት ቁምፊዎች ይተካል። ተግባሩ በትክክል እንዲሰራ ከ_ጭምብል እና ወደ_ጭምብል ያሉት ሕብረቁምፊዎች ተመሳሳይ ርዝመት ሊኖራቸው ይገባል ወይም ከ_ጭምብል ላይ ያለው ሕብረቁምፊ ከጭንብል በላይ መሆን አለበት። ከ_ጭንብል እስከ_ጭንብል የሚረዝም ከሆነ እና የstring strን በሚሰራበት ጊዜ ቁምፊዎች ከአንዱ_ጭምብል ገጸ-ባህሪያት ጋር የሚዛመዱ ሆነው ተገኝተዋል ፣ እና በ to_mask ውስጥ ለእነሱ ምንም ተዛማጅ ከሌለ ፣ እንደዚህ ያሉ ቁምፊዎች ከstring str. ከ NULL ጋር እኩል ከ_ጭምብል ወይም ወደ_ጭንብል ካለፉ ተግባሩ NULLን ይመልሳል። ንጽጽሩ ለጉዳይ-sensitive ነው የተደረገው።

ተርጓሚ ምረጥ("ሙከራ 12345""e2\"E!") x1፣
ተርጉም("ሙከራ 12345"e234""ኢ") x2
ከባለሁለት

ይህ ተግባር ከቁምፊ መቀየር ወይም የተከለከሉ ቁምፊዎችን መፈለግ ጋር የተያያዙ በርካታ ተግባራዊ ችግሮችን ለመፍታት ምቹ ነው. ለምሳሌ የይለፍ ቃል መተንተን እና ቢያንስ አንድ አሃዝ መያዙን ማወቅ አለብህ። መተርጎምን በመጠቀም የዚህ ቼክ አተገባበር ይህን ይመስላል።

ከተተረጎም(PassWd፣ "0123456789""*") = PassWd ከዛ
ADD_ERR0R ("ስህተት - የይለፍ ቃል ቢያንስ አንድ አሃዝ መያዝ አለበት!");
ተመለስ 1;
መጨረሻ;

ሌላ ምሳሌ፡ ቁጥር ወደ NUMBER ለመቀየር እየተዘጋጀ ነው። የአስርዮሽ መለያዎችን "," እና "" መተካት አስፈላጊ ነው. ወደ "" እና ክፍተቶችን ያስወግዱ. መተርጎምን በመጠቀም የዚህ ክዋኔ አተገባበር ይህን ይመስላል።

ትርጉምን ምረጥ("123 455.23"፣ "., "," " . . ") x1፣
ተርጉም("-123 455.23"፣ ".፣"፣" . . ") x2
ከባለሁለት

ተግባር SUBSTR(str፣ m [,n])

የSUBSTR ተግባር ከቁምፊ m ጀምሮ ከ n ቁምፊዎች ርዝመት ያለው የሕብረቁምፊውን ቁራጭ ይመልሳል። ርዝመቱ ላይገለጽ ይችላል - በዚህ ሁኔታ, ሕብረቁምፊው ከቁምፊው m ወደ string መጨረሻ ይመለሳል. ቁምፊዎች ከ 1 ጀምሮ ተቆጥረዋል. m = 0 ከገለጹ, ከዚያ መቅዳት አሁንም ከመጀመሪያው ቁምፊ ይጀምራል. ለ m አሉታዊ እሴትን መግለጽ ከመጀመሪያው ይልቅ ቁምፊዎች ከሕብረቁምፊው መጨረሻ ላይ እንዲቆጠሩ ያደርጋል. ከሕብረቁምፊው ርዝመት በፍፁም ዋጋ የሚበልጡ m እሴቶችን መለየት ተግባሩ NULL እንዲመለስ ያደርገዋል።

ንዑስን ይምረጡ("ካህኑ ውሻ ነበረው"፣13) x1፣
SUBSTR ("ካህኑ ውሻ ነበረው", -6) x2,
SUBSTR("ይህ የሙከራ ጽሑፍ ነው"፣5፣8) x3፣
SUBSTR ("ካህኑ ውሻ ነበረው", 150) x4
ከባለሁለት

ጽሑፍ

ተግባር INSTR(str፣ search_str [,n[,m]])

የINSTR ተግባር ከ search_str ጋር የሚዛመድ የሕብረቁምፊ ክፍልፋይ str የመጀመሪያውን ቁምፊ m-ro ቦታ ይመልሳል። ንጽጽሩ የሚከናወነው ከ ሕብረቁምፊ str ቁምፊ ነው; በነባሪ, n = m = 1, ማለትም ፍለጋው ከመስመሩ መጀመሪያ ጀምሮ ይከናወናል እና የተገኘው የመጀመሪያው ቁራጭ ቦታ ይመለሳል. ፍለጋው ካልተሳካ, ተግባሩ 0 ይመለሳል.

INSTR("y butt was a dog", "ውሻ") x1፣
INSTR("y butt was a dog", "ድመት") x2,
INSTR ("ይህ የጽሑፍ ፍለጋን ለማሳየት ጽሑፍ ነው"፣ "ጽሑፍ"፣ 1፣ 2) x3፣
INSTR('1111100000001፣"1"፣7) x4
ከባለሁለት

በዚህ ተግባር ፣ እንዲሁም በ Oracle ውስጥ ካሉ ሁሉም ፣ NULL እሴቶችን ከማስተናገድ ጋር የተዛመዱ የተለመዱ ስህተቶች ብዙውን ጊዜ ይከናወናሉ። str=NULL ከሆነ ተግባሩ ወደ ዜሮ ሳይሆን ወደ NULL ይመለሳል! የተለያዩ ሁኔታዎችን ሲገነቡ ይህ ግምት ውስጥ መግባት አለበት. ለምሳሌ፣ ይህ የPL/SQL ፕሮግራም ቁራጭ ይህንን ባህሪ ከግምት ውስጥ አያስገባም፡-

INSTR(TXT_VAR) ከሆነ፣"*") = 0 ከዚያም
...
መጨረሻከሆነ;

በዚህ ሁኔታ, እንደዚህ አይነት መፃፍ ትክክል ይሆናል.

NVL (INSTR(TXT_VAR፣ "*")፣ 0) ከሆነ = 0 ከዚያ
...
መጨረሻ;

LENGTH (str) እና LENGTHB (str) ተግባራት

የLENGTH(str) ተግባር የሕብረቁምፊውን ርዝመት በቁምፊዎች ይመልሳል። ለ ባዶ ሕብረቁምፊ እና NULL እሴት፣ ተግባሩ NULL ይመልሳል፣ ስለዚህ ከዚህ ተግባር ጋር በጥምረት NVL ለመጠቀም ይመከራል።

ርዝመትን ምረጥ("ካህኑ ውሻ ነበረው") x1፣
LENGTH("") x2፣
ርዝመት( ባዶ) x3፣
NVL(ርዝመት("")፣ 0) x4
ከባለሁለት

የLENGTHB ተግባር ከLENGTH ተግባር ጋር ተመሳሳይ ነው፣ ነገር ግን የሕብረቁምፊውን ርዝመት በባይት ይመልሳል።

ASCII(str) ተግባር

ASCII ቁምፊ ኢንኮዲንግ ሲጠቀሙ የstring የመጀመሪያ ቁምፊ የASCII እሴትን እና የመልቲባይት ቁምፊ ኢንኮዲንግ ሲጠቀሙ የመልቲባይት ቁምፊ የመጀመሪያ ባይት እሴት ያወጣል። ለምሳሌ፥

ASCII("ሙከራ") x1 ከባለሁለት ይምረጡ

ተግባር CHR(n)

ቁምፊን በኮዱ ይመልሳል።

CHR (64) x1 ይምረጡ
ከባለሁለት

ለሌሎች። የሚከተለው አገባብ አለው፡-

CONV(ቁጥር፣ኤን፣ኤም)

ክርክር ቁጥርበመሠረት N ውስጥ ነው ተግባሩ ወደ ቤዝ M ይለውጠዋል እና እሴቱን እንደ ሕብረቁምፊ ይመልሳል.

ምሳሌ 1

የሚከተለው መጠይቅ ቁጥር 2ን ከአስርዮሽ ወደ ሁለትዮሽ ይለውጠዋል፡-

CONV (2,10,2) ይምረጡ;

ውጤት፡ 10

2E ቁጥርን ከሄክሳዴሲማል ወደ አስርዮሽ ለመቀየር የሚከተለው መጠይቅ ያስፈልጋል።

CONV ("2E",16,10) ይምረጡ;

ውጤት፡ 46

ተግባር CHAR() ASCII ኮድ ወደ ሕብረቁምፊዎች ይለውጣል. የሚከተለው አገባብ አለው፡-

CHAR(n1,n2,n3..)

ምሳሌ 2

CHAR ን ይምረጡ (83,81,76);

ውጤት፡ SQL

የሚከተሉት ተግባራት የሕብረቁምፊውን ርዝመት ይመለሳሉ፡-

  • ርዝመት (ሕብረቁምፊ);
  • OCTET_LENGTH(ሕብረቁምፊ);
  • CHAR_LENGTH(ሕብረቁምፊ);
  • CHARACTER_LENGTH(ሕብረቁምፊ)።

ምሳሌ 3

ርዝመትን ይምረጡ ("MySQL");

ውጤት፡ 5

አንዳንድ ጊዜ ይህ ተግባር ጠቃሚ ነው BIT_LENGTH(ሕብረቁምፊ), ይህም የሕብረቁምፊውን ርዝመት በቢት ይመልሳል.

ምሳሌ 4

BIT_LENGTH("MySQL") ይምረጡ;

ውጤት፡ 40

ከንዑስ ሕብረቁምፊዎች ጋር ለመስራት ተግባራት

ንዑስ ሕብረቁምፊ አብዛኛውን ጊዜ የሕብረቁምፊ አካል ነው። ብዙውን ጊዜ በሕብረቁምፊ ውስጥ የንዑስ ሕብረቁምፊ የመጀመሪያ ክስተት ቦታን ማወቅ ያስፈልግዎታል። ሶስት ተግባራት ይህንን ችግር በ MySQL ውስጥ ይፈታሉ

  • LOCATE(ንዑስ ሕብረቁምፊ፣ ሕብረቁምፊ [፣አቀማመጥ]);
  • POSITION (ንዑስ ሕብረቁምፊ፣ ሕብረቁምፊ);
  • INSTR (ሕብረቁምፊ፣ ንኡስ ሕብረቁምፊ)።

ንኡስ ሕብረቁምፊው በሕብረቁምፊው ውስጥ ከሌለ ሦስቱም ተግባራት 0 ይመለሳሉ. የ INSTR () ተግባር ከሌሎቹ ሁለቱ በክርክሩ ቅደም ተከተል ይለያል. የLOCATE() ተግባር ሶስተኛ ነጋሪ እሴት ሊይዝ ይችላል። አቀማመጥበሕብረቁምፊ ውስጥ ንዑስ ሕብረቁምፊን ከመጀመሪያው ሳይሆን ከተወሰነ ቦታ እንዲፈልጉ ያስችልዎታል።

ምሳሌ 5

ቦታን ምረጥ ("ቶፓዝ", "ክፍት የጋራ ኩባንያ ቶፓዝ");

ውጤት፡ 31

POSITION ን ይምረጡ ("ቶፓዝ", "ክፍት የጋራ ኩባንያ ቶፓዝ");

ውጤት፡ 31

INSTR ("ክፍት የጋራ አክሲዮን ኩባንያ ቶፓዝ"፣'ቶፓዝ') ይምረጡ።

ውጤት፡ 31

ቦታን ምረጥ ("ቶፓዝ", "Topaz Plant and Topaz LLC", 9);

ውጤት፡ 20

ቦታን ምረጥ ("አልማዝ", "ቶፓዝ ክፈት የጋራ አክሲዮን ማህበር");

ውጤት፡ 0

ተግባራት LEFT(መስመር፣ N)እና ቀኝ (ሕብረቁምፊ, N)በሕብረቁምፊው ውስጥ የግራ እና የቀኝ የ N ቁምፊዎችን በቅደም ተከተል ይመልሱ።

ምሳሌ 6

ግራ ምረጥ("MySQL DBMS", 4);

ውጤት፡ ዲቢኤምኤስ

ቀኝ ምረጥ ("MySQL DBMS", 5);

ውጤት፡ MySQL

አንዳንድ ጊዜ በተወሰነ ቦታ የሚጀምር ንዑስ ሕብረቁምፊ ማግኘት ያስፈልግዎታል። የሚከተሉት ተግባራት ለዚህ ጥቅም ላይ ይውላሉ.

  • SubsTRING (ሕብረቁምፊ, አቀማመጥ, N);
  • MID (መስመር፣ አቀማመጥ፣ N)።

ሁለቱም ተግባራት ከተጠቀሰው ቦታ ጀምሮ የተሰጠውን ሕብረቁምፊ N ቁምፊዎች ይመለሳሉ.

ምሳሌ 7

ንዑስ ክፍልን ይምረጡ ("MySQL DBMS በጣም ታዋቂ ከሆኑ DBMS አንዱ ነው" 6.5);

ውጤት፡ MySQL

ይህ ባህሪ ከኢሜል አድራሻዎች እና የድር ጣቢያ አድራሻዎች ጋር ሲሰራ በጣም ጠቃሚ ነው. SUBSTR_INDEX(). ተግባሩ ሶስት ነጋሪ እሴቶች አሉት

SUBSTR_INDEX(ሕብረቁምፊ፣ ገዳቢ፣ N)

የ N መከራከሪያው አዎንታዊ ወይም አሉታዊ ሊሆን ይችላል. አሉታዊ ከሆነ, ተግባሩ ከቀኝ በኩል በመቁጠር የመለያያውን Nth ክስተት ያገኛል. ከዚያ ከተገኘው ገዳይ በስተቀኝ የሚገኘውን ንዑስ ሕብረቁምፊ ይመልሳል። N አወንታዊ ከሆነ ተግባሩ በግራ በኩል ያለውን የ Nth መከሰትን ያገኛል እና ከተገኘው ገዳቢ በስተግራ የሚገኘውን ንዑስ ሕብረቁምፊ ይመልሳል።

ምሳሌ 8

SUBSTRING_INDEX("www.mysql.ru"፣.,2) ይምረጡ።

ውጤት፡ www.mysql

SUBSTRING_INDEX("www.mysql.ru"፣""፣-2) ይምረጡ።

ውጤት: mysql.ru

ተግባር ተካ(ሕብረቁምፊ፣ ንኡስ ሕብረቁምፊ1፣ ንኡስ ሕብረቁምፊ2)ሁሉንም የንኡስ ሕብረቁምፊ1 ክስተቶች በሕብረቁምፊ ውስጥ በንዑስ ሕብረቁምፊ2 ለመተካት ያስችልዎታል።

መሰረታዊ የሕብረቁምፊ ተግባራት እና ኦፕሬተሮች የተለያዩ ችሎታዎችን ይሰጣሉ እና በዚህ ምክንያት የሕብረቁምፊ እሴት ይመለሳሉ። አንዳንድ የሕብረቁምፊ ተግባራት ሁለት-ኤለመንቶች ናቸው, ይህም ማለት በአንድ ጊዜ በሁለት ገመዶች ላይ መስራት ይችላሉ. የ SQL 2003 ደረጃ የሕብረቁምፊ ተግባራትን ይደግፋል።

የማጣቀሚያ ኦፕሬተር

SQL 2003 የኮንኬቴሽን ኦፕሬተርን (||) ይገልፃል፣ እሱም ሁለት የተለያዩ ሕብረቁምፊዎችን ወደ አንድ የሕብረቁምፊ እሴት ያገናኛል።

DB2 መድረክ

የ DB2 መድረክ የ SQL 2003 ኮንክቴሽን ኦፕሬተርን እንዲሁም ተመሳሳይ ቃሉን የCONCAT ተግባርን ይደግፋል።

MySQL መድረክ

የ MySQL መድረክ ለ SQL 2003 ማገናኛ ኦፕሬተር ተመሳሳይ ቃል የሆነውን የCONCATQ ተግባርን ይደግፋል።

Oracle እና PostgreSQL

የ PostgreSQL እና Oracle መድረኮች የ SQL 2003 ድርብ ቋሚ ባር ኮንኬኔሽን ኦፕሬተርን ይደግፋሉ።

SQL አገልጋይ መድረክ

የSQL አገልጋይ መድረክ የመደመር ምልክትን (+) ለSQL 2003 ማገናኛ ኦፕሬተር እንደ ተመሳሳይ ቃል ይጠቀማል።

/* SQL 2003 አገባብ */

stringl || ሕብረቁምፊ2 || ሕብረቁምፊ3

string1string2string3

/* ለ MySQL */

CONCAT("stringl""string2")

ከተጣመሩት እሴቶች ውስጥ አንዳቸውም ባዶ ከሆኑ ባዶ ሕብረቁምፊ ይመለሳል። በተጨማሪም፣ የቁጥር እሴት በግንኙነቱ ውስጥ ከተሳተፈ፣ በተዘዋዋሪ ወደ ሕብረቁምፊ እሴት ይቀየራል።

CONCAT ("የእኔ"፣ "bologna"፣ "ያለው"፣ "a"፣ "መጀመሪያ"፣ "ስም...") ይምረጡ።

የእኔ ቦሎኛ የመጀመሪያ ስም አለው።

CONCAT ን ይምረጡ("የእኔ"፣ NULL፣ "ያለው"፣ "መጀመሪያ", "ስም...");

CONVERT እና መተርጎም

የCONVERT ተግባር በቁምፊ ስብስብ እና ስብስብ ውስጥ የቁምፊ ሕብረቁምፊ ማሳያን ይለውጣል። ለምሳሌ፣ የCONVERT ተግባር በአንድ ቁምፊ የቢት ብዛት ለመቀየር ጥቅም ላይ ሊውል ይችላል።

የTRANSLATE ተግባር የሕብረቁምፊ እሴት ከአንድ ቁምፊ ስብስብ ወደ ሌላ ይተረጉመዋል። ለምሳሌ፣ የትርጉም ተግባር ዋጋን ከእንግሊዝኛው ቁምፊ ወደ ካንጂ (ጃፓንኛ) ወይም ሲሪሊክ (ሩሲያ) ቁምፊ ስብስብ ለመቀየር ሊያገለግል ይችላል። ትርጉሙ ራሱ አስቀድሞ መኖር አለበት - በነባሪነት የተገለጸ ወይም የተፈጠረ የትርጉም ትዕዛዙን በመጠቀም።

SQL 2003 አገባብ

CONVERT (የቁምፊ_ዋጋ የቁምፊ_መቀየር_ስም)

ተርጉም(የትርጓሜ_ስም በመጠቀም የቁምፊ_ዋጋ)

የCONVERT ተግባር የቁምፊ እሴትን ወደ ቁምፊ ስብስብ ይለውጠዋል በቁምፊ_conversion_name ግቤት ውስጥ ከተገለጸው ስም ጋር። የTRANSLATE ተግባር የቁምፊ እሴትን በትርጉም_ስም ወደተገለጸው የቁምፊ ስብስብ ይለውጠዋል።

ከተገመገሙት የመሣሪያ ስርዓቶች መካከል፣ በ SQL 2003 መስፈርት ውስጥ እንደተገለጸው የCONVERT እና መተርጎም ተግባራትን የሚደግፈው Oracle ብቻ ከ SQL 2003 ጋር በጣም ተመሳሳይ ነው፣ ግን ተመሳሳይ አይደለም። በዚህ ትግበራ, ተግባሩ ሁለት ነጋሪ እሴቶችን ብቻ ይወስዳል እና በመረጃ ቋት ቁምፊ ስብስብ እና በአካባቢያዊ የነቃ የቁምፊ ስብስብ መካከል ብቻ ይተረጉማል.

MySQL የ CONV ተግባርን መተግበር ቁጥሮችን ከአንድ መሰረት ወደ ሌላ ብቻ ይቀይራል። የ SQL አገልጋይ የ CONVERT ተግባር በችሎታዎች በጣም የበለፀገ እና የገለጻውን የውሂብ አይነት ይለውጣል ፣ ግን በሌሎች በሁሉም ጉዳዮች ከ SQL 2003 መደበኛ የ CONVERT ተግባር የ PostgreSQL መድረክ የ CONVERT ተግባርን አይደግፍም ፣ እና አተገባበሩን አይደግፍም። የTRANSLATE ተግባር ሁሉንም የቁምፊ ሕብረቁምፊ ክስተቶች ወደ ሌላ የቁምፊ ሕብረቁምፊ ይለውጣል።

ዲቢ2

የ DB2 መድረክ የCONVERT ተግባርን አይደግፍም፣ እና ለትርጓሜ ተግባር ድጋፍ ANSIን አያከብርም። የትርጉም ተግባር ንዑስ ሕብረቁምፊዎችን ለመለወጥ ጥቅም ላይ ይውላል እና በታሪካዊ ሁኔታ ከበላይ ተግባር ጋር ተመሳሳይ ነው ምክንያቱም የላይኛው ተግባር በቅርቡ ወደ DB2 ታክሏል። የTRANSLATE ተግባር በ DB2 ውስጥ ከአንድ ነጋሪ እሴት ጋር እንደ የቁምፊ አገላለጽ ጥቅም ላይ ከዋለ ውጤቱ ያው ሕብረቁምፊ ወደ አቢይ ሆሄ ተቀይሯል። ተግባሩ ከበርካታ ነጋሪ እሴቶች ጋር ጥቅም ላይ የሚውል ከሆነ፣ ለምሳሌ መተርጎም(ucmo4HUK፣ ተካ፣ ግጥሚያ)፣ ከዚያ ተግባሩ በማዛመጃ መለኪያው ውስጥ ያሉትን ሁሉንም ቁምፊዎች በምንጭ ውስጥ ይለውጣል። በተዛማጅ ግጥሚያ ውስጥ ባለው ተመሳሳይ ቦታ ውስጥ ያለው እያንዳንዱ ምንጭ በተለዋዋጭ ግቤት ቁምፊ ይተካል። ከታች አንድ ምሳሌ ነው.

ተርጉም("ሄሎ፣ አለም!") "ሄሎ፤ አለም!"

መተርጎም("ሄሎ፣አለም1"፣"wZ"፣"1W") "ሄውዎ፣ ዞርውድ1

MySQL

የ MySQL መድረክ የትርጉም እና CONVERT ተግባራትን አይደግፍም።

ኦራክል

የOracle መድረክ ለCONVERT እና TRSLATE ተግባራት የሚከተለውን አገባብ ይደግፋል።

በOracle ትግበራ የCONVERT ተግባር ወደ ዒላማ_ቻርሴት_ሴት የተቀየረ የቁምፊ እሴት ጽሑፍ ይመልሳል። የቻር_ዋጋ መለኪያው የሚቀየረው ሕብረቁምፊ ነው፣ ኢላማ_ቻርሴት_ሴት ሕብረቁምፊው የሚቀየርበት የቁምፊ ስም ነው፣እና የምንጭ_ቻርሴት መለኪያ የሕብረቁምፊ እሴቱ መጀመሪያ የተከማቸበት የቁምፊ ስብስብ ነው።

በ Oracle ውስጥ ያለው የትርጉም ተግባር የANSI አገባብ ይከተላል፣ ነገር ግን ከሁለት የቁምፊ ስብስቦች አንዱን ብቻ መምረጥ ይችላሉ፡ የውሂብ ጎታ ቁምፊ ​​ስብስብ (CHARJCS) እና የብሄራዊ ቋንቋ ቁምፊ ስብስብ (NCHARJZS)።

Oracle ሌላ ተግባርን ይደግፋል፣ መተርጎም ተብሎም ይጠራል (የቁልፍ ቃሉን ሳይጠቀም)። ይህ የትርጉም ተግባር ከቁምፊ ቅንብር ልወጣ ጋር ምንም ግንኙነት የለውም።

የዒላማው እና የምንጭ ቁምፊ ስብስቦች ስሞች እንደ ሕብረቁምፊ ቋሚዎች ወይም ለሠንጠረዥ አምድ ማጣቀሻ ሊተላለፉ ይችላሉ. አንድ ሕብረቁምፊ ወደ የቁምፊ ስብስብ ሲቀይሩ ሁሉንም የሚለወጡ ቁምፊዎችን ወደማያሳይበት ጊዜ, ምትክ ቁምፊዎችን መተካት እንደሚችሉ ልብ ይበሉ.

Oracle US7ASCII እና WE8DECDECን የሚያካትቱ በርካታ የተለመዱ የቁምፊ ስብስቦችን ይደግፋል። WE8HP፣ F7DEC፣ WE8EBCDIC500፣ WE8PC850u WE8ISO8859PI። ለምሳሌ፡-

CONVERT("Gro2""US7ASCII""WE8HP") ከ DUAL ይምረጡ።

PostgreSQL

የ PostgreSQL መድረክ የANSI መደበኛ CONVERT መግለጫን ይደግፋል፣ እና እዚህ ልወጣዎች የCREATE COVERSION ትዕዛዝን በመጠቀም ሊገለጹ ይችላሉ። PostgreSQL የTRANSLATE ተግባርን መተግበሩ ማንኛውንም ጽሑፍ ወደ ሌላ ጽሑፍ በተወሰነ ሕብረቁምፊ ውስጥ እንዲቀይሩ የሚያስችልዎ የተራዘመ የተግባር ስብስብ ያቀርባል።

ተርጉም (የቁምፊ ሕብረቁምፊ፣ ከ_ጽሑፍ፣ ወደ_ጽሑፍ)

አንዳንድ ምሳሌዎች እነሆ፡-

ትርጉምን ምረጥ("12345abcde"፣"5a"፣ "XX")፤ "1234XXbcde" ተርጎም ምረጥ (ርዕስ፣ "ኮምፒዩተር"፣ "ፒሲ") ከርዕሶች የት አይነት = "የግል_ኮምፒውተር" ቀይርን ምረጥ("PostgreSQL" iso_8859_1_to_utf_8) "PostgreSQL"

SQL አገልጋይ

የSQL አገልጋይ መድረክ የትርጉም ተግባርን አይደግፍም። በ SQL አገልጋይ ውስጥ ያለው የCONVERT ተግባር አተገባበር ከ SQL 2003 መስፈርት ጋር የተጣጣመ አይደለም።

ቀይር (የውሂብ አይነት[(ርዝመት) | (ትክክለኛነት፣ ልኬት)]፣ አገላለጽ፣ ዘይቤ])

የቅጥ አንቀጽ የቀን ቅየራ ቅርጸቱን ለመወሰን ጥቅም ላይ ይውላል። ለበለጠ መረጃ፣ የSQL አገልጋይ ሰነድን ይመልከቱ። ከታች አንድ ምሳሌ ነው.

ርዕስ ምረጥ፣ ቀይር(ቻር(7)፣ ytd_sales) ከርዕሶች ትእዛዝ ሂድ በማዕረግ


ከ BOL የተወሰዱ የሕብረቁምፊ ተግባራት ሙሉ ዝርዝር ከዚህ በታች አለ።

አስኪ NCHAR SOUNDEX
CHAR ፓቲንዴክስ SPACE
CARINDEX ተካ STR
ልዩነት QUOTENAME ነገሮች
ግራ ይድገሙት መቀላቀል
ኤል.ኤን ተገላቢጦሽ ዩኒኮዴ
ዝቅተኛ ቀኝ የላይኛው
RTRIM RTRIM

በተገላቢጦሽ ከሚዛመዱ ሁለት ተግባራት እንጀምር - አስኪእና ቻር፡

የASCII ተግባር የቁምፊ አገላለጽ የግራ ቁምፊ የሆነውን የASCII ኮድ እሴት ይመልሳል፣ የተግባር ክርክር ነው።

በመርከብ ሠንጠረዥ ውስጥ ያሉት የመርከቦች ስም የሚጀምሩት ምን ያህል የተለያዩ ፊደላትን ለመወሰን የሚቻልበት መንገድ ምሳሌ እዚህ አለ.

ከመርከብ COUNT (የተለየ አስኪ (ስም)) ይምረጡ

ውጤቱ 11 ነው። እነዚህ ፊደሎች ምን እንደሆኑ ለማወቅ፣ ቁምፊን በሚታወቅ ASCII ኮድ እሴት የሚመልስ የCHAR ተግባርን መጠቀም እንችላለን (ከ0 እስከ 255)።

የተለየ ገበታ (ASCII(ስም)) ከመርከብ ትእዛዝ በ1 ምረጥ

አንድ ተጨማሪ ተግባር በመጠቀም ተመሳሳይ ውጤት ቀላል ሊሆን እንደሚችል ልብ ሊባል ይገባል - ግራየሚከተለው አገባብ አለው፡-

ግራ (<የቁምፊ_አገላለጽ>, <ኢንቲጀር_መግለጫ>)

እና ከተወሰኑ የቁምፊዎች ብዛት ጀምሮ የቁምፊ ሕብረቁምፊውን ክፍል ከግራ ይመልሳል። ስለዚህ፣

የተለየ ግራ(ስም፣ 1) ከመርከብ ትእዛዝ በ1 ምረጥ

እና የሁሉንም የፊደል ቁምፊዎች ኮዶች ሰንጠረዥ ለማግኘት ይህ መንገድ ነው-

CHAR(ASCII("a")+ቁጥር-1) ፊደል፣ ASCII("a")+ ቁጥር - 1 ከ

(አንድ ዩኒየን 1 ሁሉንም ምረጥ 2 ህብረት ሁሉንም ምረጥ 3 ህብረት ሁሉንም ምረጥ 4 ህብረት ሁሉንም ምረጥ 5) x
ይቀላቀሉ
ይቀላቀሉ
) x
ASCII("a")+ ቁጥር -1 በASCII("a") እና በ ASCII("z") መካከል የት

የቁጥር ቅደም ተከተል ማመንጨትን ለማያውቁ ሰዎች ተጓዳኝ ጽሑፉን እጠቅሳለሁ።

የትናንሽ ሆሄያት እና አቢይ ሆሄያት ኮድ እሴቶች እንደሚለያዩ ይታወቃል። ለዚህ ነው ከላይ ያለውን መጠይቅ እንደገና ሳይጽፉ ሙሉውን ስብስብ ለማግኘት፡ ከላይ ለተጠቀሰው ተመሳሳይ ኮድ መጻፍ በቂ ይሆናል፡-

UNION
CHAR(ASCII("A")+ቁጥር-1) ፊደል፣ ASCII("A")+ ቁጥር - 1 ምረጥ

5*5*(a-1)+5*(b-1)+c AS num from ምረጥ
(አንድ ዩኒየን 1 ሁሉንም ምረጥ 2 ህብረት ሁሉንም ምረጥ 3 ህብረት ሁሉንም ምረጥ 4 ህብረት ሁሉንም ምረጥ 5) x
ይቀላቀሉ
(1 ቢ ዩንየን ሁሉንም ምረጥ 2 ህብረት ሁሉንም ምረጥ 3 ህብረት ሁሉንም ምረጥ 4 ህብረት ሁሉንም ምረጥ 5) y
ይቀላቀሉ
(1 ሐ ዩኒየን ሁሉንም ምረጥ 2 ዩኒየን ሁሉንም ምረጥ 3 ዩኒየን ሁሉንም ምረጥ 4 ዩኒየን ሁሉንም ምረጥ 5) z
) x
ASCII("A")+ ቁጥር -1 በ ASCII("A") እና ASCII("Z") መካከል የት

አሁን በሕብረቁምፊ አገላለጽ ውስጥ ንዑስ ሕብረቁምፊን የመፈለግን ተግባር እናስብ። ሁለቱ ተግባራት ለዚህ ጥቅም ላይ ሊውሉ ይችላሉ፡- CARINDEXእና ፓቲንዴክስ.

ሁለቱም በቁምፊ ሕብረቁምፊ ውስጥ የአንድ ንዑስ ሕብረቁምፊ መነሻ ቦታ (የንዑስ ሕብረቁምፊ የመጀመሪያ ቁምፊ አቀማመጥ) ይመለሳሉ። የ CARINDEX ተግባር የሚከተለው አገባብ አለው፡- ቻሪንዴክስ ()

string_expression , ዒላማ_መግለጫ [ , መጀመሪያ_ቦታ ] እዚህ አማራጭ የኢንቲጀር መለኪያመጀመሪያ_ቦታ ቦታን በ ሀ string_expression , የት መፈለግ ሀኢላማ_መግለጫ ቦታን በ ሀጀምሮ ይጀምራል። ይህ ግቤት ከተተወ፣ ፍለጋ የሚጀምረው ከሀ መጀመሪያ ጀምሮ ነው።

.

ለምሳሌ, መጠይቁ

ስም ከመርከቦች WHERE CHARINDEX("sh" ስም) > 0 ይምረጡ
መርከቦቹ በስማቸው ውስጥ የ"sh" ቁምፊዎች ቅደም ተከተል አላቸው። እዚህ የምንጠቀመው አንድ ንዑስ ሕብረቁምፊ ካልተገኘ, ተግባሩ CHARINDEX ይመለሳል 0. መጠይቁን የማስፈጸም ውጤት የሚከተሉትን መርከቦች ይይዛል.
ስም
ኪሪሺማ

ሙሳሺ , የት መፈለግ ሀዋሽንግተን ቦታን በ ሀመሆኑን ልብ ልንል ይገባል ሀ

ወይም

NULL ነው፣ የተግባሩ ውጤት እንዲሁ ባዶ ነው።
የሚቀጥለው ምሳሌ በመርከብ "ካሊፎርኒያ" ስም "a" የቁምፊው የመጀመሪያ እና ሁለተኛ ክስተቶች አቀማመጥ ይወስናል.

CHARINDEX("a",name) first_a ይምረጡ፣

CHARINDEX("ሀ"፣ ስም፣ CHARINDEX("ሀ"፣ስም)+1) ሰከንድ_ሀ ፓቲንዴክስሁለተኛውን ክስተት በሚወስኑበት ጊዜ የመነሻ ቦታው በተግባር ላይ የዋለው ከመጀመሪያው "a" - CHARINDEX("a" ስም)+1 ቀጥሎ ያለው የቁምፊ አቀማመጥ መሆኑን ልብ ይበሉ። የውጤቱ ትክክለኛነት - 2 እና 10 - በቀላሉ ሊረጋገጥ ይችላል.

ተግባሩ የሚከተለው አገባብ አለው፡-)

ፓቲንዴክስ (

"% pattern%", string_expression

የዚህ ተግባር ዋና ልዩነት ከCHARINDEX አንድ የፍለጋ ሕብረቁምፊ የዱር ምልክት ቁምፊዎችን - % እና _ ሊይዝ ይችላል። መሪ እና የሚያልቅ ቁምፊዎች "%" ያስፈልጋል። ለምሳሌ፣ በመጀመሪያው ምሳሌ ውስጥ የዚህ ተግባር አጠቃቀም ይህን ይመስላል

ከመርከቦች ስም ምረጥ PATINDEX("%sh%"፣ ስም) > 0
እናም የሶስት ቁምፊዎችን ቅደም ተከተል የያዙትን የመርከቦች ስም የሚያገኙበት መንገድ አለ ፣ የመጀመሪያው እና የመጨረሻው “e” ነው ።

ከመርከብ ስም ይምረጡ

ስም ከመርከቦች WHERE CHARINDEX("sh" ስም) > 0 ይምረጡ
የት PATINDEX("%e_e%"፣ስም) >0
የዚህ ጥያቄ አፈፃፀም ውጤቱ ይህንን ይመስላል።

CHARINDEX("ሀ"፣ ስም፣ CHARINDEX("ሀ"፣ስም)+1) ሰከንድ_ሀ ቀኝበቀል ግራሮያል ሉዓላዊ

የሚያሟላ<የቁምፊ_አገላለጽ>,<ኢንቲጀር_መግለጫ>)

ከቁምፊ አገላለጽ መብት የተወሰኑ ቁምፊዎችን ይመልሳል፡-

ቀኝ(
ለምሳሌ ፣ በተመሳሳይ ፊደል የሚጀምሩትን መርከቦችን ስም የሚወስኑበት መንገድ እዚህ አለ ።

ባዶ የውጤት ስብስብ ያገኘነው ማለት እንደዚህ ያሉ መርከቦች በእኛ የውሂብ ጎታ ውስጥ የሉም ማለት ነው። ጥምረት እንውሰድ - ክፍል እና የመርከብ ስም።

የሁለት ሕብረቁምፊ እሴቶችን ወደ አንድ ማጣመር ይባላል ማገናኘት, እና በ ውስጥ SQL አገልጋይምልክት "+" ለዚህ ተግባር ጥቅም ላይ ይውላል ("||" በመደበኛ)።

ስለዚህ፣
) x

ይምረጡ * ከ (

እዚህ የክፍሉን እና የመርከቧን ስም በቦታ እንለያያለን። ከዚህም በላይ በተግባራዊ ክርክር ውስጥ ሙሉውን ግንባታ ላለመድገም, ንዑስ ክፍልን እንጠቀማለን. ውጤቱም ይህን ይመስላል።
cn
አዮዋ ሚዙሪ

ሰሜን ካሮላይና ዋሽንግተን

ስለዚህ፣
እና የሕብረቁምፊ አገላለጽ አንድ ቁምፊ ብቻ ቢይዝስ? መጠይቁ ያስወጣዋል። በመጻፍ በቀላሉ ማረጋገጥ ይችላሉ
ክፍልን ይምረጡ +""+ ስም AS cn ከመርከብ
) x
UNION ሁሉም "a" እንደ nc ይምረጡ

የት ግራ (cn, 1) = ቀኝ (cn, 1) ይህንን ጉዳይ ለማስቀረት, አንድ ተጨማሪ ጠቃሚ ተግባር ቦታን በ ሀ) ሌን

ስለዚህ፣
እና የሕብረቁምፊ አገላለጽ አንድ ቁምፊ ብቻ ቢይዝስ? መጠይቁ ያስወጣዋል። በመጻፍ በቀላሉ ማረጋገጥ ይችላሉ
መጠቀም ይቻላል. በአንድ ሕብረቁምፊ ውስጥ ያሉትን የቁምፊዎች ብዛት ይመልሳል። የቁምፊዎች ብዛት ከአንድ ሲበልጥ በጉዳዩ እንያያዝ፡-
) x
UNION ሁሉም "a" እንደ nc ይምረጡ

የት ግራ (cn, 1) = ቀኝ (cn, 1) እና ሌን (cn)>1

በቁጥር ቅደም ተከተል እሴቶችን በሕብረቁምፊ ቅርጸት ፣ ለምሳሌ በአውሮፕላን ውስጥ ያለ የመቀመጫ ቁጥር ("2d") ወይም የሲዲ ፍጥነትን መደበኛ ለማድረግ (ከፍተኛውን ይፈልጉ ወዘተ) በድር ጣቢያው ላይ ያሉ ተግባራት አሉ። "24x" ችግሩ ያለው ፅሁፉ እንደዚህ አይነት መደርደሩ (በማስወጣቱ) ላይ ነው።
11 ሀ
1 ሀ

2ሀ
“1a” AS ቦታን ይምረጡ
UNION ሁሉንም "2a" ይምረጡ
UNION ሁሉንም "11a" ን ይምረጡ

ትእዛዝ በ 1

የቦታዎችን መደዳዎች በቅደም ተከተል መደርደር ካስፈለገ ትዕዛዙ እንደዚህ መሆን አለበት፡-
1 ሀ
1 ሀ

11 ሀ
እንዲህ ዓይነቱን ትእዛዝ ለማግኘት በጽሑፍ ውስጥ በቁጥር እሴቶች መደርደር ያስፈልጋል። የሚከተለውን ስልተ ቀመር ሀሳብ አቀርባለሁ።
1. ከሕብረቁምፊው ውስጥ ቁጥር ያውጡ።
2. ወደ አሃዛዊ ቅርጸት ይለውጡት.

3. በተለወጠ እሴት መደርደርን ያከናውኑ።

በሕብረቁምፊው ውስጥ አንድ ፊደል ብቻ እንዳለ እንደምናውቀው እና ቁጥሩን ለማውጣት በመቀመጫ ቁጥር ላይ ባሉ ቁጥሮች ላይ የማይመሰረት የሚከተለውን ግንባታ መጠቀም እንችላለን።

ግራ(ቦታ፣ ኤልኤን(ቦታ)-1)

በዚህ ብቻ ከታሰርን እናገኘዋለን
ቦታ
1 ሀ
11 ሀ

2ሀ

ወደ የቁጥር ቅርጸት መቀየር የሚከተለውን ሊመስል ይችላል።

CAST (ግራ(ቦታ፣ ኤልኤን (ቦታ)-1) AS INT)

ስለዚህ፣
አሁን መደርደር ብቻ ማከናወን አለብን
“1a” AS ቦታን ይምረጡ
UNION ሁሉንም "2a" ይምረጡ
“1a” AS ቦታን ይምረጡ

) x ትእዛዝ በCAST(በግራ(ቦታ፣ ሌን(ቦታ)-1) እንደ INT)

ከዚህ ቀደም አንድን ቁጥር ከአንድ ሕብረቁምፊ አገላለጽ ለማውጣት የLEFT ተግባርን እንጠቀም ነበር፣ ምክንያቱም ምን ያህል ቁምፊዎች ከቀኝ (አንድ) መወገድ እንዳለባቸው ቅድሚያ ስለምናውቅ። እና ሕብረቁምፊን ከንዑስ ሕብረቁምፊ ማውጣታችን በሚታወቀው የገጸ-ባህሪይ ቦታ ሳይሆን በገፀ ባህሪው ቢሆንስ? ለምሳሌ ከመጀመሪያው ፊደል "x" (የሲዲ ፍጥነት እሴት) በፊት ያሉትን ሁሉንም ቁምፊዎች አውጣ.

ቀደም ሲል በዚህ አጋጣሚ የቁምፊውን ያልታወቀ ቦታ ለመወሰን የሚያስችለንን የ CHARINDEX ተግባርን መጠቀም እንችላለን-

ሞዴል፣ ግራ(ሲዲ፣ CHARINDEX("x፣ሲዲ) -1) ከፒሲ ምረጥ

መቀላቀልተግባር

መመዝገብ (<አገላለጽ> ,<ጀምር>,<ርዝመት>)

ይህ ተግባር ከተጠቀሰው የመነሻ አቀማመጥ ጀምሮ የተወሰነ ርዝመት ያለውን ክፍል ከአንድ መግለጫ ለማውጣት ያስችለናል. አገላለጽ ቁምፊ ወይም ሁለትዮሽ ሕብረቁምፊ ሊሆን ይችላል፣ እና የጽሑፍ ወይም የምስል አይነትም ሊኖረው ይችላል። ለምሳሌ ከ 2 ኛ ቁምፊ ጀምሮ በመርከብ ስም 3 ቁምፊዎችን ማግኘት ከፈለግን ያለ SUBSTRING ተግባር ማድረግ ቀላል አይደለም ። እና ስለዚህ እንጽፋለን-

ስም ይምረጡ፣ መመዝገብ(ስም፣ 2፣ 3) ከመርከብ

ከተወሰኑት ጀምሮ ሁሉንም ቁምፊዎች ማውጣት ካስፈለገን ይህንን ተግባር ልንጠቀምበት እንችላለን። ለምሳሌ፡-

ስም ይምረጡ፣ መመዝገብ(ስም፣ 2፣ ሌን(ስም)) ከመርከብ

ከሁለተኛው ፊደል ጀምሮ በመርከቦቹ ስም ያሉትን ሁሉንም ቁምፊዎች ይሰጠናል. የማውጣትን የቁምፊዎች ብዛት ለመጥቀስ የLEN(ስም) ተግባርን ተጠቀምኩኝ ፣ በስሙ ውስጥ ብዙ ቁምፊዎችን ይመልሳል። ቁምፊዎቹን ስለምፈልግ ከሁለተኛው ጀምሮ ቁጥሩ በስሙ ውስጥ ካሉት የቁምፊዎች ብዛት ያነሰ እንደሚሆን ግልጽ ነው። የሚፈቀድ ቁጥር፣ እስከ ሕብረቁምፊው መጨረሻ ድረስ ያሉት ሁሉም ቁምፊዎች ይወጣሉ። ለዚያም ነው እራሴን ስሌቶችን በመቆጠብ በመጠባበቂያ እወስዳለሁ.

ተገላቢጦሽተግባር

ይህ ተግባር ልክ ከቀኝ ወደ ግራ እንደሚያነበው ሁሉ ሕብረቁምፊውን ይገለብጠዋል። ያ የጥያቄው ውጤት ነው።

ተገላቢጦሽ ("abcdef") ይምረጡ

"Fedcba" ይሆናል. በቋንቋው ውስጥ የ RIGHT ተግባር ከሌለ ጥያቄው

ቀኝ ምረጥ("abcdef",3)

በጥያቄው እኩል ሊተካ ይችላል።

ተገላቢጦሽ ምረጥ(ግራ(ተገላቢጦሽ("abcdef")፣3))

የዚህን ተግባር ትርፍ በሚከተለው ውስጥ አይቻለሁ. ቦታን በቁምፊ ሕብረቁምፊ ውስጥ የመጀመሪያውን ሳይሆን የማንኛውም ገጸ ባህሪ (ወይም የቁምፊዎች ቅደም ተከተል) የመጨረሻውን ክስተት መወሰን ያስፈልገናል.

በመርከብ "ካሊፎርኒያ" ስም የመጀመሪያውን "a" ቦታ የምንወስንበትን አንድ ምሳሌ እናስታውስ.

CHARINDEX("a" ስም) መጀመሪያ_ሀ ይምረጡ
ከመርከቦች WHERE ስም = "ካሊፎርኒያ"

አሁን በዚህ ስም የቁምፊው "a" የመጨረሻውን ክስተት ቦታ እንወስን ተግባሩ

ቻሪንዴክስ("a", REVERSE(ስም))

ይህንን ቦታ እንድናገኝ ይፈቅድልናል, ነገር ግን ከቀኝ. የዚህን ገጸ ባህሪ ቦታ ለማግኘት, ከግራ በኩል ግን, ለመጻፍ በቂ ነው

ሌን (ስም) + 1 ይምረጡ - CHARINDEX("a", REVERSE(ስም)) first_a
ከመርከቦች WHERE ስም = "ካሊፎርኒያ"

ተካተግባር

ተካ(<string_expression1> , <string_expression2> , <string_expression3>)

ይህ ተግባር በ ውስጥ ይተካል string_expression1ሁሉም የ string_expression2ጋር string_expression3. ይህ ተግባር በፍፁም አጋዥ ነው። አዘምንኦፕሬተሮች, የአምዱን ይዘት መለወጥ ካለብን. ለምሳሌ, ሁሉንም ቦታዎች በመርከቦቹ ስም በሰረዙ መተካት ያስፈልገናል.

ከዚያም መፃፍ እንችላለን
አዘምን መርከቦች

ስም አዘጋጅ = ተካ (ስም " ", "-")

(ይህ ምሳሌ በዲኤምኤል ልምምዶች በገጹ ላይ ማከናወን ይችላሉ፣ መረጃውን የማዘመን ጥያቄዎች ተቀባይነት ባለው ቦታ)

ነገር ግን ይህ ተግባር በጣም ቀላል ባልሆኑ ጉዳዮች ላይ መሳሪያውን ማግኘት ይችላል። “ሀ” የሚለው ፊደል በመርከብ ስም ስንት ጊዜ ጥቅም ላይ እንደሚውል እንወስን ሀሳቡ በጣም ቀላል ነው፡ እያንዳንዱን የፍለጋ ፊደላት በሁለት ቁምፊዎች እንተካው እና ከዚያ በኋላ የርዝመትን ልዩነት እናሰላለን። ያገኘነው ሕብረቁምፊ እና የምንጭ ሕብረቁምፊ ስለዚህ፣

ስም ይምረጡ፣ ሌን (ስም፣ "a"፣ "aa") - ሌን(ስም) ከመርከብ

እና እንደ የተከማቸ ሂደት መለኪያ ሆኖ የምናገኘውን የዘፈቀደ የቁምፊዎች ቅደም ተከተል ክስተቶች ብዛት መወሰን ብንፈልግስ? በዚህ አጋጣሚ ከላይ ጥቅም ላይ የዋለውን ስልተ ቀመር በቅደም ተከተል በበርካታ ቁምፊዎች ላይ ካለው ክፍፍል ጋር ማሟያ አለብን።
@str እንደ ቫአርቻር (100) አውጁ
አዘጋጅ @str="ma"

ስም ምረጥ፣ (LEN(መለካት(ስም @str፣ @str+@str)) - ሌን(ስም))/LEN(@str) ከመርከብ እዚህ የፍለጋ ቁምፊዎችን ቁጥር በእጥፍ ለማሳደግ @str+@str ማያያዝ ተተግብሯል። ሆኖም ለዚህ ውጤት አንድ ተጨማሪ ተግባር መጠቀም እንችላለን-ይድገሙት

በሁለተኛው ነጋሪ እሴት እንደተገለፀው የመጀመሪያውን ነጋሪ እሴት ብዙ ጊዜ ይደግማል።

ስም ምረጥ፣ (LEN(መለካት(ስም @str፣ መድገም(@str, 2)))) - ሌን(ስም))/LEN(@str) ከመርከብ

ማለትም በተለዋዋጭ @str ውስጥ የተከማቸውን ንዑስ ሕብረቁምፊ ሁለት ጊዜ ደጋግመን እንሰራለን። ነገሮችበሕብረቁምፊ ውስጥ የተወሰኑ የቁምፊዎች ቅደም ተከተል ሳይሆን የተወሰነ የቁምፊዎች ብዛት መተካት ካስፈለገን ከተወሰነ ቦታ ጀምሮ መጠቀም ቀላል ነው።

ተግባር፡-<ቁምፊ_መግለጫ1> , <ጀምር> , , <ቁምፊ_መግለጫ2>)

ይህ ተግባር ንዑስ ሕብረቁምፊን በርዝመት ይተካል። ርዝመትየሚጀምረው ከ ጀምርውስጥ አቀማመጥ ቁምፊ_መግለጫ1ጋር ቁምፊ_መግለጫ2.

ምሳሌ. የመርከቧን ስም ቀይር፡- አባሪ "_" (አስምር) እና ከመጀመሪያዎቹ 5 ቁምፊዎች በኋላ የሚጀምር አመት። በስሙ ውስጥ ከ 5 ያነሱ ቁምፊዎች ካሉ, ከቦታዎች ጋር ያሟሉ.

ይህ ተግባር በተለያዩ ተግባራት ሊፈታ ይችላል. ከ ጋር ለማድረግ እንሞክራለን ነገሮችተግባር.

በመጀመሪያው አቀራረብ እንጽፋለን (ከተመረጠው መጠይቁ ጋር በማያያዝ)፡-

ስም ይምረጡ፣ STUFF(ስም፣ 6፣ ኤልኤን(ስም)፣ "_"+የተጀመረ) ከመርከብ

እኔ LEN (ስም) እንደ ሦስተኛው መከራከሪያ እጠቀማለሁ (ለመተካት የቁምፊዎች ብዛት) ፣ ምክንያቱም ሁሉንም ቁምፊዎች እስከ ሕብረቁምፊው መጨረሻ ድረስ መተካት አለብኝ እና ለዚህም ነው በመጠባበቂያ የምወስደው - የመጀመሪያው የቁምፊዎች ብዛት በ ውስጥ። ግን ይህ ጥያቄ አሁንም ስህተትን ይመልሳል እና የሕብረቁምፊው ቋሚ እና የኢንቲጀር አምድ በሚሰራበት ሦስተኛው ነጋሪ እሴት ውስጥ አይደለም አንድ ተጨማሪ አብሮ የተሰራ ተግባር ልንጠቀም እንችላለን- STR:

STR (<ተንሳፋፊ_መግለጫ> [ , <ርዝመት> [ , <አስርዮሽ> ] ])

በዚህ ልወጣ ስር ማጠቃለያው እየተሰራ ነው፣ እና ሀ ርዝመትየተገኘውን ሕብረቁምፊ ርዝመት ይገልጻል።

ለምሳሌ፡-
STR (3.3456፣ 5፣ 1) 3.3
STR (3.3456፣ 5፣ 2) 3.35
STR (3.3456፣ 5፣ 3) 3.346

STR (3.3456፣ 5፣ 4) 3.346

ያስታውሱ፣ የቁጥሩ ሕብረቁምፊ እይታ ከተጠቀሰው ርዝመት ያነሰ ከሆነ መሪዎቹ ቦታዎች ይታከላሉ። ውጤቱ ከተጠቀሰው ርዝመት በላይ ከሆነ, የክፍልፋይ ክፍሉ እየተቆራረጠ ነው (ከክብ-ዙር ጋር); የኢንቲጀር ዋጋ ካለ ተጓዳኝ የኮከቦች ቁጥር "*" እናገኛለን።

STR(12345፣4,0)****

በነገራችን ላይ ነባሪ ርዝመት 10 ምልክቶች ነው. አንድ አመት በአራት ቁጥሮች መወከሉን ከግምት ውስጥ በማስገባት እንጽፋለን

ስም ይምረጡ፣ STUFF(ስም፣ 6፣ ኤልኤን(ስም)፣ "_"+STR(የተጀመረ፣ 4)) ከመርከብ

ሁሉም ነገር ትክክል ነው ማለት ይቻላል። በስሙ ውስጥ ያሉት የምልክቶች ብዛት ከ 6 በታች በሚሆንበት ጊዜ ጉዳዩ ከግምት ውስጥ ገብቷል ፣ ምክንያቱም በዚህ ሁኔታ STUFF ተግባር NULL ይሰጣል። ደህና፣ በዚህ ምሳሌ ውስጥ ይህንን ተግባር ከመጠቀም ጋር በተገናኘው መንገድ ላይ አንድ ተጨማሪ የሕብረቁምፊ ተግባርን በመተግበር ላይ እስከ መጨረሻው መደርደሪያው ላይ መሆን አለብን። SPACEየስሙ ርዝመት እያወቅን ከ6 በላይ ስለሆነ ተከታይ ባዶዎችን እንጨምራለን ። ልዩ አለ

ለዚያ ተግባር<SPACE(>):

ባዶ_ብዛት።

ስም ይምረጡ፣ STUFF(ስም + SPACE(6)፣ 6፣ LEN(ስም)፣ "_"+STR(የተጀመረ፣4)) ከመርከብእና RTRIM LTRIM

ተግባራት<የቁምፊ_አገላለጽ>)

LTRIM(<የቁምፊ_አገላለጽ>)

በነባሪነት ወደ የተለወጠውን የሕብረቁምፊ አገላለጽ መሪ እና ተከታይ ባዶዎችን ይቁረጡ ቫርቻርዓይነት.

እንደዚህ ያለ ሕብረቁምፊ መገንባት ያስፈልገናል: የተሳፋሪው ስም_የተሳፋሪው መለያከተሳፋሪው ጠረጴዛ ላይ ለእያንዳንዱ መዝገብ. ከጻፍን

ከተሳፋሪ ስም + "_" + CAST(id_psg AS VARCHAR) ይምረጡ፣

በውጤቱ ውስጥ እንደዚህ ያለ ነገር እናገኛለን

የአምዱ ስም ዓይነት ካለው እውነታ ጋር የተያያዘ ነው CHAR(30)

አጭሩ ሕብረቁምፊ ለዚህ አይነት ከባዶ ጋር ወደተገለጸው ልኬት ተጨምሯል (30 ምልክቶች አሉን)።

ዝቅተኛእና የላይኛው LTRIM

ተግባር RTRIM እዚህ ይረዳናል፡-<የቁምፊ_አገላለጽ>)

ከተሳፋሪ RTRIM(ስም) + "_" + CAST(id_psg AS VARCHAR) ይምረጡ<የቁምፊ_አገላለጽ>)

ዝቅተኛ(

የላይኛው( SOUNDEXእና ልዩነት

በዚህ መሠረት ሁሉንም የክርክሩ ቁምፊዎች ወደ ታችኛው እና የላይኛው መዝገብ ይለውጡ።<የቁምፊ_አገላለጽ>)

እነዚህ ተግባራት ከተመዘገቡት ሕብረቁምፊዎች ጋር ሲነፃፀሩ ጠቃሚ ሆነው ይታያሉ።<አስደሳች የሆኑ ተግባራት ጥንድ>, <ድምጽ(>)

ልዩነት ( የቁምፊ_አገላለጽ_1ቁምፊ_መግለጫ_2

የቃላትን ተመሳሳይ ድምጽ ለመወሰን ፍቀድ. SOUNDEX መመሳሰልን ለመገምገም ባለአራት ቁምፊ ኮድ ይመልሳል፣ ነገር ግን ልዩነት የሁለቱን ንፅፅር የቁምፊ ሕብረቁምፊዎች ተመሳሳይነት በትክክል ይገመግማል።

ዩኒኮዴተግባር

እነዚህ ተግባራት ሲሪሊክን የማይደግፉ በመሆናቸው፣ ፍላጎት ያላቸውን እጠቅሳለሁ።<ቦል>)

ለአጠቃቀሙ ምሳሌዎች.

NCHARተግባር

በማጠቃለያው የዩኒኮድ አጠቃቀምን አንዳንድ ተግባራትን እና ጥቂት ምሳሌዎችን እናቀርባለን።<ዩኒኮዴ>)

ncharacter_expression

ለግቤት አገላለጽ የመጀመሪያ ቁምፊ የዩኒኮድ ዋጋን ይመልሳል።

NCHAR (

ኢንቲጀር

ከተሰጠው ኢንቲጀር የዩኒኮድ እሴት ጋር ቁምፊ ይመልሳል። ጥቂት ምሳሌዎች፡-

ASCII("a")፣ UNICODE("a") ይምረጡ

የ ASCII-ኮድ እሴት እና የዩኒኮድ እሴት የሩስያ ፊደል "a": 224 እና 1072 ይመልሳል.

CHAR(ASCII("a"))፣ CHAR(UNICODE("a")) ይምረጡ

ምልክትን በኮዱ ዋጋ ለማግኘት እንሞክራለን። "a" እና NULL እናገኛለን። NULL-እሴቱ ይመለሳል ምክንያቱም 1072 ኮድ እሴቱ በተለመደው የኮድ ሠንጠረዥ ውስጥ የለም።

CHAR(ASCII("a"))፣ NCHAR(UNICODE("a")) ይምረጡ

አሁን ምንም አይደለም፣ "ሀ" በሁለቱም ሁኔታዎች። NCHAR(ASCII("а")) ይምረጡ

ዊንዶውስ በፍጥነት መዝጋት (Windows NT/2000/XP) የዊንዶውስ ኤንቲ ስሪቶች 3.1 እና 3.5 ሁሉንም ሂደቶች በ20 ሰከንድ ውስጥ እንዲዘጉ አስችሎታል። በዊንዶውስ NT 3.51 እና ከዚያ በላይ, ስርዓቱ መዘጋት ያለበትን የጊዜ ክፍተት መወሰን ይቻላል. ይህንን ለማድረግ ቁልፉን ማስተካከል ያስፈልግዎታል

በ Visual Basic®.NET የውሂብ ጎታ ማቀናበር ከተባለው መጽሐፍ የተወሰደ ደራሲ ማክማንስ ጆፍሪ ፒ

ምዕራፍ 3 SQL Server 2000ን ማስተዋወቅ ቀደም ባሉት ጊዜያት ብዙ ፕሮግራመሮች Visual Basic እና የማይክሮሶፍት አክሰስ ዳታቤዝ በጄት ሞተር በመጠቀም የመረጃ ቋት አፕሊኬሽኖችን መፍጠር ጀመሩ። አንዴ የውሂብ ጎታ ወደ ብዙ ሺህ መዝገቦች ካደገ ወይም አገልግሎቶቹ በብዙዎች ጥቅም ላይ ውለዋል

የዊንዶውስ ስክሪፕት አስተናጋጅ ለዊንዶውስ 2000/XP ከተባለው መጽሐፍ ደራሲ ፖፖቭ አንድሬ ቭላድሚሮቪች

SQL Server 2000 ለመጫን የሚያስፈልጉ መስፈርቶች SQL Server 2000ን ለመጫን የፔንቲየም (ወይም ተኳሃኝ) ፕሮሰሰር ያለው ኮምፒዩተር ቢያንስ 166 MHz ድግግሞሽ ያለው፣ የሃርድ ዲስክ ቦታ ከ95 እስከ 270 ሜባ (ለተለመደው ጭነት 270 ሜባ እና 44) ያስፈልግዎታል። ሜባ ለዴስክቶፕ ሞተር) ፣ የዲስክ ድራይቭ

ስለ ዴልፊ መጽሐፍት የማይጽፉበት መጽሐፍ ደራሲ ግሪጎሪቭ ኤ.ቢ.

SQL Server 2000 ን መጫን አስፈላጊውን ውቅር ያለው ኮምፒውተር ከመረጡ በኋላ መጫኑን መቀጠል ይችላሉ። በአጠቃላይ ለ SQL Server 2000 የመጫን ሂደቱ ከሚከተሉት ባህሪያት በስተቀር በጣም ቀላል ነው: በጣም ረጅም ጊዜ ይወስዳል; በመጫን ሂደት ውስጥ ለመጀመሪያ ጊዜ ብዙ ይጠየቃል

በጸሐፊው ፒኤችፒ ሪፈረንስ ከተሰኘው መጽሐፍ

SQL Server 2000 Basics SQL Server ከተጫነ እና ከጀመረ በኋላ መረጃን ለማውጣት ወይም ለማስቀመጥ የሚከተሉትን ደረጃዎች ማጠናቀቅ አለብዎት፡ አንድ ወይም ከዚያ በላይ ዳታቤዝ ይፍጠሩ። በመረጃ ቋቱ ውስጥ ሠንጠረዦችን ይፍጠሩ; እይታዎችን ይፍጠሩ እና ይከማቻሉ

ከ XSLT መጽሐፍ ደራሲ ሆልዝነር እስጢፋኖስ

በሠንጠረዥ ውስጥ ከድርድሮች ጋር ለመስራት ተግባራት. A2.17 አዳዲስ አደራደሮችን ለመፍጠር እና ስለነባር መረጃዎችን ለማግኘት የሚረዱ ተግባራትን ያሳያል። ከድርድር ጋር የመስራት ተግባራት የተግባር መግለጫ አደራደር(arglist) የተለዋዋጭ እሴትን ይመልሳል

ሊኑክስ፡ ሙሉ መመሪያው ከሚለው መጽሐፍ የተወሰደ ደራሲ ኮሊስኒቼንኮ ዴኒስ ኒከላይቪች

3.3. ከሕብረቁምፊዎች ጋር የመሥራት ረቂቅ ዘዴዎች በዚህ ክፍል ከሕብረቁምፊዎች ጋር ለመስራት አንዳንድ ስውር ዘዴዎችን እንመለከታለን፣ ይህም አቀናባሪው ለአንዳንድ የመጀመሪያ ደረጃ ለሚመስሉ ድርጊቶች ምን ኮድ እንደሚያመነጭ በተሻለ እንድንረዳ ያስችለናል። እዚህ የተሰጡት ሁሉም ምሳሌዎች እንደተጠበቀው አይሰሩም

የሼል ጥበብ ስክሪፕት የቋንቋ ፕሮግራሚንግ ከተባለው መጽሐፍ የተወሰደ በኩፐር ሜንዴል

የ C ቋንቋ - ለጀማሪዎች መመሪያ ከተባለው መጽሐፍ በፕራታ ስቲቨን

ከሕብረቁምፊዎች ጋር ለመስራት የ XPath ተግባራት የሚከተሉት የ XPath ተግባራት በXSLT ውስጥ ይገኛሉ፡ concat(string string1, string string2,...)። ወደ እሱ የተላለፉትን የሁሉም ሕብረቁምፊዎች ትስስር (ህብረት) ይመልሳል። (ሕብረቁምፊ string1፣ string string2) ይዟል። የመጀመሪያው ሕብረቁምፊ ሁለተኛውን ከያዘ እውነት ይመለሳል

ሊኑክስ እና ዩኒክስ፡ ሼል ፕሮግራሚንግ ከሚለው መጽሐፍ። የገንቢ መመሪያ. በታይንስሊ ዴቪድ

23.2.2. ከማህደረ ትውስታ ጋር አብሮ የመስራት ተግባራት ከግሊብ ቤተ-መጽሐፍት ጋር ተመሳሳይ የሆኑ ተግባራትን ያከናውናሉ: የእነሱ ተምሳሌቶች እዚህ አሉ: gpointer g_realloc (gpointer mem, gulong size); g_free(አስተዋይ

የ PascalABC.NET ቋንቋ መግለጫ ከመጽሐፉ ደራሲ የሩቦርድ ቡድን

ከደራሲው መጽሐፍ

13. በሕብረቁምፊዎች ላይ ያሉ የገጸ-ባህሪያት ሕብረቁምፊዎች እና ተግባራት የቁምፊ ሕብረቁምፊዎች ግቤት-ውፅዓት ሕብረቁምፊዎች ከሕብረቁምፊዎች ትእዛዝ ክርክሮች ጋር የሚሰሩ ተግባራትን በመጠቀም።

ከደራሲው መጽሐፍ

ከሕብረቁምፊዎች ጋር የሚሰሩ ተግባራት አብዛኛዎቹ የC ቋንቋ ቤተ-ፍርግሞች ከሕብረቁምፊዎች ጋር የሚሰሩ ተግባራት አሏቸው። አራቱን በጣም ጠቃሚ እና የተለመዱትን እንይ፡ strlen()፣ strcat()፣ strcmp() እና strcpy()። የሕብረቁምፊውን ርዝመት የሚያገኘውን የ strlen() ተግባር አስቀድመን ተጠቅመንበታል።

ከደራሲው መጽሐፍ

ከደራሲው መጽሐፍ

ከቁምፊዎች እና ከሕብረቁምፊዎች ጋር ለመስራት የዕለት ተዕለት ተግባራት Chr(a: ባይት): ቻር;

ከደራሲው መጽሐፍ

ኮዱን ወደ ዊንዶውስ ኢንኮዲንግ ቁምፊ ተግባር ይለውጠዋል ChrUnicode(a: word): char;