Sql мөрийн эхэнд тэмдэгт нэмнэ. SQL стринг функцууд эсвэл MySQL мэдээллийн сан дахь текстийг хэрхэн удирдах талаар

Үндсэн мөрийн функцууд болон операторууд нь олон төрлийн сонголтуудыг өгдөг бөгөөд үр дүнд нь мөрийн утгыг буцаана. Зарим мөрийн функцууд нь хоёр элементтэй байдаг бөгөөд энэ нь хоёр мөрөнд нэгэн зэрэг ажиллах боломжтой гэсэн үг юм. SQL 2003 стандарт нь мөрийн функцийг дэмждэг.

холбох оператор

SQL 2003 нь хоёр тусдаа мөрийг нэг мөрийн утга болгон нэгтгэдэг холбох операторыг (||) тодорхойлдог.

DB2 платформ

DB2 платформ нь SQL 2003 холболтын оператор болон түүний ижил утгатай CONCAT функцийг дэмждэг.

MySQL платформ

MySQL платформ нь SQL 2003 холболтын операторын ижил утгатай CONCATQ функцийг дэмждэг.

Oracle болон PostgreSQL

PostgreSQL болон Oracle платформууд нь SQL 2003 давхар босоо бар холбох операторыг дэмждэг.

SQL Server платформ

Платформ SQL сервер SQL 2003 холболтын операторын ижил утгатай нэмэх тэмдгийг (+) ашигладаг. SQL Server нь системийн параметр CONCAT_NULL_YIELDS_NULL нь мөрийн утгуудыг хооронд нь холбох үед NULL утгуудтай тулгарах үед систем хэрхэн ажиллахыг хянадаг.

/* SQL 2003 синтакс */

мөр || string2 || мөр3

string1string2string3

/* MySQL-д зориулсан */

CONCAT("stringl", "string2")

Хэрэв холбосон утгуудын аль нэг нь хоосон байвал хоосон мөрийг буцаана. Мөн тоон утгыг холбоход оролцвол энэ нь далд утгыг мөрийн утга болгон хувиргадаг.

SELECT CONCAT("Миний ", "болонья ", "байсан ", "а ", "эхний", "нэр...");

Миний Болонья анхны нэртэй

SELECT CONCAT("Миний ", NULL, "байна ", "эхний ", "нэр...");

ХӨРВҮҮЛЭХ, ОРЧУУЛАХ

CONVERT функц нь тэмдэгтийн багц болон эвлүүлэг доторх тэмдэгтийн мөрийн дэлгэцийг өөрчилдөг. Жишээлбэл, CONVERT функцийг ашиглан тэмдэгт бүрийн битийн тоог өөрчлөх боломжтой.

TRANSLATE функц нь мөрийн утгыг нэг тэмдэгтээс нөгөө тэмдэгт рүү хөрвүүлдэг. Жишээлбэл, TRANSLATE функцийг ашиглан утгыг англи тэмдэгтийн багцаас ханз (япон) эсвэл кирилл (орос) тэмдэгт болгон хөрвүүлэх боломжтой. Орчуулга нь өгөгдмөлөөр эсвэл CREATE TRANSLATION тушаалаар үүсгэгдсэн байх ёстой.

SQL 2003 синтакс

ХӨРӨВЛҮҮЛЭХ (тэмдэгтийн_нэрийг ашиглан тэмдэгтийн_утга)

TRANSLATE(орчуулгын_нэрийг АШИГЛАХ тэмдэгтийн_утга)

CONVERT функц нь тэмдэгтийн утгыг тэмдэгтийн_хувиргах_нэр параметрт заасан нэртэй тэмдэгтийн багц болгон хувиргадаг. TRANSLATE функц нь тэмдэгтийн утгыг орчуулгын_нэр хэсэгт заасан тэмдэгтийн багц болгон хувиргадаг.

Үзэж буй платформуудаас зөвхөн Oracle л SQL 2003 стандартад тодорхойлогдсон CONVERT болон TRANSLATE функцийг дэмждэг.Oracle-ийн TRANSLATE функцийг хэрэгжүүлэх нь SQL 2003-тай маш төстэй боловч ижил биш юм. Энэхүү хэрэгжилтэд функц нь зөвхөн хоёр аргумент авах бөгөөд зөвхөн өгөгдлийн сангийн тэмдэгтийн багц болон локал тохиргоотой тэмдэгтүүдийн хооронд хөрвүүлнэ.

MySQL-ийн CONV функцийг хэрэгжүүлэх нь зөвхөн тоог нэг баазаас нөгөөд хөрвүүлдэг. Харин SQL Server дээр CONVERT функцийн хэрэгжилт нь маш баялаг бөгөөд илэрхийллийн өгөгдлийн төрлийг өөрчилдөг боловч бусад бүх талаараа SQL 2003 стандартын CONVERT функцээс ялгаатай.PostgreSQL платформ нь CONVERT функцийг дэмждэггүй ба TRANSLATE функцийн хэрэгжилт нь тэмдэгтийн мөрийн бүх тохиолдлыг өөр тэмдэгтийн мөр болгон хувиргадаг.

DB2

DB2 платформ нь CONVERT функцийг дэмждэггүй бөгөөд TRANSLATE функцийг дэмжих нь ANSI-д нийцдэггүй. TRANSLATE функц нь дэд мөрүүдийг хөрвүүлэхэд ашиглагддаг бөгөөд UPPER функц нь DB2-д саяхан нэмэгдсэн тул UPPER функцтэй ижил утгатай түүхтэй. Хэрэв TRANSLATE функцийг DB2-д нэг тэмдэгт илэрхийллийн аргументтай ашигладаг бол үр дүн нь ижил тэмдэгт мөрийг том үсгээр хөрвүүлнэ. Хэрэв функцийг TRANSLATE(ucmo4HUK, солих, тааруулах) гэх мэт олон аргументтай ашиглаж байгаа бол уг функц нь тохирох параметрт байгаа эх сурвалж дахь бүх тэмдэгтүүдийг хөрвүүлнэ. Эх сурвалж дахь тохирох параметртэй ижил байрлалд байгаа тэмдэгт бүрийг солих параметрийн тэмдэгтээр солино. Доорх жишээг үзүүлэв.

TRANSLATE("Сайн уу, Дэлхий!") "Сайн уу; ДЭЛХИЙ!"

TRANSLATE("Сайн уу, Дэлхий1", "wZ", "1W") "Hewwo, Zorwd1

MySQL

MySQL платформ нь TRANSLATE болон CONVERT функцийг дэмждэггүй.

Oracle

Oracle платформ нь CONVERT болон TRANSLATE функцүүдийн дараах синтаксийг дэмждэг.

Oracle-ийн хэрэгжилтэд CONVERT функц нь зорилтот_тэмдэгтийн_тогтоол болгон хөрвүүлсэн тэмдэгтийн утгыг буцаана. Тэмдэгтийн_утга параметр нь хөрвүүлэх тэмдэгт мөр, target_charset параметр нь мөрийг хөрвүүлэх тэмдэгтийн нэр, source_charset параметр нь мөрийн утгыг анх хадгалсан тэмдэгтийн багц юм.

Oracle дахь TRANSLATE функц нь ANSI синтакстай нийцдэг боловч та өгөгдлийн сангийн тэмдэгтийн багц (CHARJCS) болон үндэсний хэлний дэмжлэгийн тэмдэгтийн багц (NCHARJZS) гэсэн хоёр тэмдэгтийн багцаас зөвхөн нэгийг нь сонгох боломжтой.

Oracle нь TRANSLATE гэж нэрлэгддэг өөр функцийг дэмждэг (хэрэглэхгүйгээр түлхүүр үгАШИГЛАХ). Энэхүү TRANSLATE функц нь тэмдэгтийн багц хөрвүүлэлттэй ямар ч холбоогүй юм.

Зорилтот ба эх тэмдэгтийн багцын нэрийг мөрийн тогтмолууд эсвэл хүснэгтийн баганын лавлагаа болгон дамжуулж болно. Бүх хөрвүүлсэн тэмдэгтүүдийг харуулахгүй тэмдэгтийн багц болгон мөрийг хөрвүүлэхдээ орлуулагч тэмдэгтүүдийг орлуулж болохыг анхаарна уу.

Oracle нь US7ASCII, WE8DECDEC зэрэг хэд хэдэн нийтлэг тэмдэгтүүдийг дэмждэг. WE8HP, F7DEC, WE8EBCDIC500, WE8PC850u WE8ISO8859PI. Жишээлбэл:

SELECT CONVERT("Gro2", "US7ASCII", "WE8HP") FROM DUAL;

PostgreSQL

PostgreSQL платформ нь ANSI CONVERT мэдэгдлийг дэмждэг бөгөөд CREATE CONVERSION командыг ашиглан хөрвүүлэлтийг энд тодорхойлж болно. PostgreSQL-ийн TRANSLATE функцийг хэрэгжүүлэх нь танд заасан стринг дотор дурын текстийг өөр текст рүү хөрвүүлэх боломжийг олгодог өргөтгөсөн функцуудыг хангадаг.

TRANSLATE (тэмдэгтийн мөр, текстээс_текст рүү)

Энд зарим жишээ байна:

SELECT TRANSLATE("12345abcde", "5a", "XX"); "1234XXbcde" ОРЧУУЛГА СОНГОХ(гарчиг, "Компьютер", "Компьютер") ХААНА төрөл "Хувийн_компьютер" ХӨРӨВЛҮҮЛЭХИЙГ SELECT("PostgreSQL" iso_8859_1_to_utf_8) "PostgreSQL"

SQL сервер

SQL Server платформ нь TRANSLATE функцийг дэмждэггүй. CONVERT функцийн SQL Server хэрэгжилт нь SQL 2003 стандартыг дагаж мөрддөггүй.Энэ функц нь SQL Server дээрх CAST функцтэй дүйцэхүйц байна.

CONVERT (өгөгдлийн төрөл[(урт) | (нарийвчлал, масштаб)], илэрхийлэл, хэв маяг])

Огноо хөрвүүлэх форматыг тодорхойлоход заалтын хэв маягийг ашигладаг. Ард нь нэмэлт мэдээлэл SQL серверийн баримт бичигт хандана уу. Доорх жишээг үзүүлэв.

Гарчиг СОНГОХ, ХӨРӨВЛҮҮЛЭХ(char(7), ytd_sales) Гарчигнаас ЗАХИАЛАХ

Энэ хэсэгт бид асуулгад ашиглаж болох текстэн мэдээлэлтэй ажиллах функцуудын талаар ярих болно програмын код PL/SQL дээр.

CONCAT функц(strl, str2)

Энэ функц нь strl болон str2 мөрүүдийг холбодог. Хэрэв аргументуудын аль нэг нь NULL байвал түүнийг хоосон мөр гэж үзнэ. Хэрэв аргумент хоёулаа NULL байвал функц нь NULL утгыг буцаана. Жишээ:

SELECT CONCAT("Тахилч\"нохойтой байсан") x1,
CONCATCTest" , NULL) x2,
CONCAT(NULL, "Туршилт") x3,
CONCAT(NULL, NULL) x4
FROM давхар

Пап лам нохойтой байсан

Мөр холбохын тулд Oracle нь CONCAT функцтэй төстэй ажилладаг "||" тусгай холбох операторыг дэмждэг, жишээлбэл:

SELECT CONCAT("Тахилч\"нохойтой") x1, "Тахилч" || "нохойтой" x2
FROM давхар

CONCAT функцийг дуудахтай дүйцэх "||" холбогч оператор болон арифметик үйлдэлд ашигладаг "+" операторыг андуурч болохгүй. Oracle дээр ийм байна өөр өөр операторууд, гэхдээ автомат төрлийн цутгалтаас болж нарийн алдаа гарах боломжтой, жишээлбэл:

"5" + "3" x1-ийг сонго
FROM давхар

Энэ тохиолдолд 8 гэсэн тоон утгыг буцааж өгөхгүй текст мөр"53". Энэ нь "+" арифметик үйлдлийг илрүүлсний дараа Oracle автоматаар аргументуудыг NUMBER төрөлд оруулахыг оролддогтой холбоотой юм.

LOWER(str) функц

LOWER функц нь str мөрийн бүх тэмдэгтийг жижиг үсгээр хөрвүүлдэг. Жишээ:

ДООД СОНГОХ("TeXt DATA") X
FROM давхар

Чиг үүрэгДЭЭД(str)

UPPER функц нь str мөрийн бүх тэмдэгтүүдийг том үсгээр хөрвүүлдэг. Жишээ:

ДЭЭДИЙГ СОНГОХ("TeXt DATA") X
FROM давхар

INITCAP(str) функц

Том үсгээр хөрвүүлсэн бүх үгийн эхний үсэг бүхий str мөрийг буцаана. Энэ функц нь тайланг бүтээхдээ бүтэн нэрийг форматлахад хэрэгтэй. Жишээ:

СОНГОХ INITCAPCIvanov Петр Сидорович") X
FROM давхар

ФункцүүдLTRIM(str[,тогтоосон])ТэгээдRTRIM(str[,тогтоосон])

LTRIM функц нь тэмдэгтийн багцад байхгүй мөрийн эхнээс эхний тэмдэгт хүртэлх бүх тэмдэгтүүдийг устгадаг. Анхдагчаар багц нь нэг хоосон зайнаас бүрдэх бөгөөд орхигдуулж болно. RTRIM функц нь LTRIM-тэй төстэй боловч мөрийн төгсгөлөөс тэмдэгтүүдийг устгадаг. Хэд хэдэн жишээг харцгаая:

SELECT LTRIM("TeXt DATA") X1,
LTRIM(" _ # Текст Өгөгдөл", " #_") X2,
LTRIM(" 1234567890 Текстийн өгөгдөл", " 1234567890") X3
FROM давхар

REPLACE(str, хайлтын_стр, [,орлуулах_str]) функц

REPLACE функц нь str мөр дэх search_str загварыг хайж, тохиолдол бүрийг replace_str-ээр солино. Анхдагч байдлаар, replace_str нь хоосон мөр тул REPLACE функцийг хоёр аргументаар дуудах нь олдсон бүх тохиолдлыг арилгах болно. Дэд тэмдэгтийн хайлт нь том жижиг жижиг үсгээр харагдана. Жишээ:

SELECT REPLACE("Тахилч нохойтой байсан", "нохой", "муур") x1,
REPLACE("Тахилч ууртай нохойтой байсан", "муу") x2,
REPLACE("Тахилч нохойтой байсан", "Нохой", "Муур") x3
FROM давхар

Пап лам мууртай байсан

Пап лам нохойтой байсан

Пап лам нохойтой байсан

TRANSLATE функц(str, from_mask, to_mask)

TRANSLATE функц нь str мөрийг задлан шинжилж, from_mask мөр дэх бүх тэмдэгтүүдийг to_mask-ын харгалзах тэмдэгтүүдээр солино. Функцийг зөв ажиллуулахын тулд from_mask болон to_mask мөр нь ижил урттай байх ёстой, эсвэл from_mask мөр нь to_mask-аас урт байх ёстой. Хэрэв from_mask нь mask-аас урт бөгөөд str мөрийг боловсруулах явцад from_mask-ын тэмдэгтүүдийн аль нэгэнд тохирох тэмдэгтүүд олдож, mask-д тохирох тэмдэгт байхгүй бол str тэмдэгт мөрнөөс хасагдана. Хэрэв та mask-аас_маск эсвэл to_mask-ийг NULL-тэй тэнцүү дамжуулвал функц NULL-ийг буцаана. Харьцуулалт нь том жижиг үсгээр харьцдаг.

СОНГОХ ОРЧУУЛГА("Тест 12345", "e2\ "E!") x1,
TRANSLATE("Тест 12345", "e234", "E") x2
FROM давхар

Энэ функц нь тэмдэгт хувиргах эсвэл хориглосон тэмдэгтүүдийг хайхтай холбоотой хэд хэдэн практик асуудлыг шийдвэрлэхэд тохиромжтой. Жишээлбэл, та нууц үгэнд дүн шинжилгээ хийж, дор хаяж нэг тоо байгаа эсэхийг олж мэдэх хэрэгтэй. TRANSLATE ашиглан энэхүү шалгалтын хэрэгжилт дараах байдалтай байна.

IF TRANSLATE(PassWd, "0123456789", "*") = PassWd ТЭГВЭЛ
ADD_ERR0R("Алдаа - Нууц үгэнд дор хаяж нэг тоо байх ёстой!");
БУЦАХ 1;
Төгсгөл бол;

Өөр нэг жишээ: дугаарыг NUMBER руу хөрвүүлэхээр бэлтгэж байна. Та "," ба "" аравтын тусгаарлагчийг солих хэрэгтэй. дээр "." болон зайг арилгах. TRANSLATE ашиглан энэ үйлдлийг хэрэгжүүлэх нь дараах байдалтай байна.

SELECT TRANSLATE("123 455.23", "., ", " . ") x1,
TRANSLATE("-123 455.23", "., ", " . ") x2
FROM давхар

SUBSTR функц(str, m[,n])

SUBSTR функц нь n тэмдэгтийн урттай m тэмдэгтээс эхлэн str мөрийн фрагментийг буцаана. Уртыг орхигдуулж болно - энэ тохиолдолд m тэмдэгтээс str тэмдэгтийн төгсгөл хүртэл тэмдэгт мөрийг буцаана. Тэмдэгтүүдийг 1-ээс дугаарлана. Хэрэв та m = 0 гэж зааж өгвөл эхний тэмдэгтээс хуулж эхэлнэ. m-д сөрөг утгыг зааж өгснөөр тэмдэгтүүдийг мөрийн эхнээс биш төгсгөлөөс нь тоолоход хүргэдэг. Мөрний уртаас их m утгыг үнэмлэхүй утгаар зааж өгвөл функц NULL буцаана.

SELECT SUBSTR("Тахилч нохойтой байсан", 13) x1,
SUBSTR("Тахилч нохойтой байсан", -6) x2,
SUBSTR("Энэ бол туршилтын текст", 5, 8) x3,
SUBSTR("Тахилч нохойтой байсан", 150) x4
FROM давхар

текст

INSTR функц(str, хайлтын_стр [,n[,m]])

INSTR функц нь search_str мөртэй тохирох str мөрийн фрагментийн эхний m-ro тэмдэгтийн байрлалыг буцаана. Харьцуулалт нь str тэмдэгт мөрийн n-р тэмдэгтээс хийгдэх ба харьцуулалт нь том жижиг үсгээр харагдана. Анхдагчаар n = m = 1, өөрөөр хэлбэл хайлт нь мөрийн эхнээс хийгдэх бөгөөд эхний олдсон фрагментийн байрлалыг буцаана. Хэрэв хайлт амжилтгүй болбол функц 0-г буцаана.

SELECT INSTR("өгзөг нохой байсан", "нохой") x1,
INSTR("өгзөг нохой байсан", "муур") x2,
INSTR("Энэ бол текст хайлтыг харуулах текст", "текст", 1, 2) x3,
INSTR('11111000000001", "1", 7) x4
FROM давхар

Энэ функцийн хувьд, мөн Oracle дээрх бусад бүх функцийн хувьд NULL утгыг боловсруулахтай холбоотой ердийн алдаанууд ихэвчлэн гардаг. Хэрэв str=NULL бол функц нь тэг биш харин NULL-ийг буцаана! Янз бүрийн нөхцөлийг бий болгохдоо үүнийг анхаарч үзэх хэрэгтэй. Жишээлбэл, энэ PL/SQL програмын хэсэг нь энэ функцийг харгалздаггүй:

IF INSTR(TXT_VAR,"*") = 0 ТЭГВЭЛ
...
ТӨГСГӨЛХЭРВЭЭ;

Энэ тохиолдолд дараах байдлаар бичих нь зөв байх болно.

IF NVL(INSTR(TXT_VAR, "*"), 0) = 0 ТЭГВЭЛ
...
Төгсгөл бол;

LENGTH(str) ба LENGTHB(str) функцууд

LENGTH(str) функц нь str мөрийн уртыг тэмдэгтээр буцаана. Хоосон мөр ба NULL утгын хувьд функц нь NULL утгыг буцаадаг тул энэ функцтэй NVL-г ашиглахыг зөвлөж байна.

SELECT LENGTH("Тахилч нохойтой байсан") x1,
LENGTH("") x2,
LENGTH(NULL) x3,
NVL(LENGTH(""), 0) x4
FROM давхар

LENGTHB функц нь LENGTH функцтэй төстэй боловч мөрийн уртыг байтаар буцаана.

ASCII(str) функц

ASCII кодчилол ашиглах үед str-ийн эхний тэмдэгтийн ASCII кодыг, олон байт тэмдэгтийн кодчилол ашиглах үед олон байт тэмдэгтийн эхний байтын утгыг буцаана. Жишээ:

SELECT ASCII("Туршилт") x1 FROM dual

CHR(n) функц

Тэмдэгтийг кодоор нь буцаана.

СОНГОХ CHR(64) x1
FROM давхар

Бусдад. Энэ нь дараах синтакстай байна:

CONV(тоо,N,M)

Аргумент тоо N суурьтай тооллын системд байна. Функц нь үүнийг M суурьтай тооллын систем рүү хөрвүүлж утгыг мөр болгон буцаана.

Жишээ 1

Дараах асуулга нь 2-ын тоог аравтын тооноос хоёртын тоо руу хөрвүүлдэг.

SELECT CONV(2,10,2);

Үр дүн: 10

2E тоог 16-аас аравтын тоо руу хөрвүүлэхийн тулд асуулга шаардлагатай:

SELECT CONV("2E",16,10);

Үр дүн: 46

Чиг үүрэг CHAR() ASCII кодыг мөр болгон хөрвүүлдэг. Энэ нь дараах синтакстай байна:

CHAR(n1,n2,n3..)

Жишээ 2

SELECT CHAR(83,81,76);

Үр дүн: SQL

Дараах функцууд нь мөрийн уртыг буцаана.

  • LENGTH(мөр);
  • OCTET_LENGTH(мөр);
  • CHAR_LENGTH(мөр);
  • CHARACTER_LENGTH(мөр).

Жишээ 3

СОНГОХ УРТ("MySQL");

Үр дүн: 5

Заримдаа ашигтай шинж чанар BIT_LENGTH(мөр), энэ нь мөрийн уртыг битээр буцаана.

Жишээ 4

СОНГОХ BIT_LENGTH("MySQL");

Үр дүн: 40

Дэд мөрийн функцууд

Дэд мөр нь ихэвчлэн мөрийн нэг хэсэг юм. Ихэнхдээ та мөрөнд дэд мөрийн анхны тохиолдлын байрлалыг мэдэхийг хүсдэг. MySQL дээр энэ асуудлыг шийдэх гурван функц байдаг:

  • LOCATE(дэд мөр, мөр [,байршил]);
  • POSITION(дэд мөр, мөр);
  • INSTR(мөр, дэд мөр).

Хэрэв дэд мөр нь мөрөнд агуулаагүй бол бүх гурван функц нь 0-ийг буцаана. INSTR() функц нь бусад хоёр функцээс аргументуудын дарааллаар ялгаатай. LOCATE() функц нь гурав дахь аргумент агуулж болно байрлал, энэ нь мөр дэх дэд мөрийг эхнээс нь биш, харин заасан байрлалаас хайх боломжийг олгодог.

Жишээ 5

SELECT LOCATE("Топаз", "Топаз");

Үр дүн: 31

POSITION СОНГОХ("Топаз", "Топаз");

Үр дүн: 31

SELECT INSTR("Топаз", "Топаз");

Үр дүн: 31

SELECT LOCATE("Топаз", "Топаз завод энд ХХК Топаз", 9);

Үр дүн: 20

SELECT LOCATE("Алмаз", "Топаз");

Үр дүн: 0

Функцүүд ЗҮҮН(шугам, N)Тэгээд БАРУУН(мөр, N)мөрөнд хамгийн зүүн болон баруун талын N тэмдэгтүүдийг тус тус буцаана.

Жишээ 6

SELECT LEFT("MySQL DBMS", 4);

Үр дүн: DBMS

ЗӨВ СОНГОХ("MySQL DBMS", 5);

Үр дүн: MySQL

Заримдаа та өгөгдсөн байрлалаас эхэлсэн дэд мөрийг авах хэрэгтэй болдог. Үүний тулд дараах функцуудыг ашигладаг.

  • SUBSTRING(мөр, байрлал, N);
  • MID(мөр, байрлал, N).

Хоёр функц нь өгөгдсөн байрлалаас эхлэн өгөгдсөн мөрийн N тэмдэгтийг буцаана.

Жишээ 7

SELECT SUBSTRING("MySQL DBMS нь хамгийн алдартай DBMS-ийн нэг", 6,5);

Үр дүн: MySQL

Имэйл хаягууд болон вэбсайтын хаягуудтай ажиллахад функц нь маш ашигтай байдаг. SUBSTR_INDEX(). Энэ функц нь гурван аргументтай:

SUBSTR_INDEX(мөр, хязгаарлагч, N).

N аргумент нь эерэг эсвэл сөрөг байж болно. Хэрэв энэ нь сөрөг байвал функц нь баруун талаас тоолж, хязгаарлагчийн N-р тохиолдлыг олно. Дараа нь олсон хязгаарлагчийн баруун талд байрлах дэд мөрийг буцаана. Хэрэв N эерэг байвал функц зүүн талд байгаа хязгаарлагчийн N-р тохиолдлыг олж, олсон хязгаарлагчийн зүүн талд байгаа дэд мөрийг буцаана.

Жишээ 8

SUBSTRING_INDEX SELECT("www.mysql.ru",".",2);

Үр дүн: www.mysql

SUBSTRING_INDEX SELECT("www.mysql.ru",".",-2);

Үр дүн: mysql.com

Чиг үүрэг ОРУУЛАХ(мөр, дэд мөр1, дэд мөр2)Мөр дэх дэд мөр1-ийн бүх тохиолдлыг дэд мөр2-ээр солих боломжийг танд олгоно.

Номоос Windows Бүртгэл зохиолч Климов А

Түргэн дуусгах Windows ажилладаг(Windows NT/2000/XP) Windows NT-ийн 3.1 ба 3.5 хувилбарууд нь бүх процессыг 20 секундын дотор хаах боломжтой болгосон. Windows NT 3.51 ба түүнээс дээш хувилбаруудад системийг унтраахад шаардагдах хугацааг зааж өгөх боломжтой. Үүнийг хийхийн тулд та түлхүүрийг засах хэрэгтэй

Мэдээллийн санг боловсруулах тухай номноос Visual Basic®.NET зохиолч Макманус Жеффри П

БҮЛЭГ 3 SQL Server 2000-ийг танилцуулах нь Өнгөрсөн хугацаанд олон програмистууд Visual Basic хэл болон SQL Server 2000 мэдээллийн баазыг ашиглан өгөгдлийн сангийн програмуудыг бүтээж эхэлсэн. Microsoft-ын өгөгдөл Jet core ашиглан нэвтрэх. Мэдээллийн сан хэдэн мянган бүртгэлтэй болмогц эсвэл түүний үйлчилгээнд хэд хэдэн хүн хандсан

Номоос Windows скрипт Windows 2000/XP-д зориулсан хост зохиолч Попов Андрей Владимирович

SQL Server 2000 суулгах шаардлага SQL Server 2000-г суулгахын тулд танд хамгийн багадаа 166 МГц давтамжтай Pentium (эсвэл тохирох) процессортой, хатуу дискний зай 95-270 МБ (ердийн суулгацад 270 МБ, суулгахад 44 МБ) байх шаардлагатай. Ширээний хөдөлгүүр), дискний хөтөч

Делфийн номонд бичээгүй зүйл номноос зохиолч Григорьев А.Б.

SQL Server 2000 суулгах Хүссэн тохиргоотой компьютерээ сонгосны дараа та суулгацыг үргэлжлүүлж болно. Ерөнхийдөө SQL Server 2000 суулгах процесс нь маш энгийн бөгөөд дараахь зүйлийг эс тооцвол: энэ нь удаан хугацаа шаарддаг; суулгах явцад эхлээд маш их зүйл асуудаг

Зохиогчийн РНР гарын авлагаас

SQL Server 2000-ийн үндсэн ойлголтуудыг суулгасны дараа болон SQL эхлүүлэхМэдээллийг сэргээх эсвэл хадгалахын өмнө сервер дараах алхмуудыг хийх ёстой: нэг буюу хэд хэдэн мэдээллийн сан үүсгэх; мэдээллийн санд хүснэгт үүсгэх; харагдац үүсгэж хадгална

XSLT номноос зохиолч Холзнер Стивен

Массивтай ажиллах функцууд А2.17-д шинээр массив үүсгэх, одоо байгаа массивуудын талаар мэдээлэл авах функцуудыг харуулав.Хүснэгт A2.17. Массив функцууд Функцийн тодорхойлолт Array(arglist) Хувилбарын утгыг буцаана

Линукс номноос: Бүрэн гарын авлага зохиолч Колисниченко Денис Николаевич

3.3. Мөртэй ажиллах нарийн чанарууд Энэ хэсэгт бид мөртэй ажиллах зарим нарийн ширийн зүйлийг авч үзэх бөгөөд энэ нь хөрвүүлэгч нь энгийн мэт санагдах үйлдлүүдэд ямар код үүсгэдэгийг илүү сайн ойлгох боломжийг олгодог. Энд өгөгдсөн бүх жишээнүүд үүнээс өөрөөр ажилладаггүй

The Art of Shell Scripting Programming номноос Купер Мендел

The C Language - Анхан шатны гарын авлага номноос зохиолч Прата Стефен

Мөртэй ажиллах XPath функцууд XSLT дээр мөртэй ажиллах XPath функцууд байдаг: concat(string string1, string string2,...). Түүнд дамжуулсан бүх мөрийн холболтыг (нэгдлийг) буцаана; агуулсан (string string1, string string2). Эхний мөрөнд хоёр дахь мөрийг агуулж байвал үнэнийг буцаана

Линукс ба UNIX номноос: бүрхүүлийн програмчлал. Хөгжүүлэгчийн гарын авлага. зохиолч Тайнсли Дэвид

23.2.2. Санах ойн функцууд Glib-ийн санах ойн функцүүд нь өөрт тохирох C функцтэй ижил үйлдлийг гүйцэтгэдэг.Тэдний загварууд энд байна: gpointer g_malloc(gulong size);gpointer g_realloc(gpointer mem, gulong size);void g_free(gpointer).

PascalABC.NET хэлний тайлбар номноос зохиолч RuBoard баг

Зохиогчийн номноос

13. Тэмдэгтийн мөр ба мөр дээрх функцууд

Зохиогчийн номноос

СТРИНГИЙН ФУНКЦИУД Ихэнх С номын сангууд мөр дээр ажилладаг функцуудыг хангадаг. strlen(), strcat(), strcmp() болон strcpy() гэсэн хамгийн хэрэгцээтэй, нийтлэг дөрвөн зүйлийг харцгаая. Бид аль хэдийн мөрийн уртыг олдог strlen() функцийг ашигласан.

Зохиогчийн номноос

Зохиогчийн номноос

Тэмдэгт болон мөртэй ажиллах дэд программууд Chr(a: байт): char; Кодыг Windows кодлогдсон тэмдэгт функц болгон хувиргадаг ChrUnicode(a: word): char; Кодыг Юникод тэмдэгтийн функц болгон хувиргана OrdUnicode(a: char): word; Тэмдэгтийг Юникод кодын функц руу хөрвүүлнэ UpperCase(ch: char): char;

Зохиогчийн номноос

Өнгөний функцууд Өнгөний өнгөний төрөл нь System.Drawing.Color-ын ижил утгатай. функц RGB(r,g,b: байт): Өнгө; Улаан (r), ногоон (g), цэнхэр (b) бүрэлдэхүүн хэсгүүдийг (r,g ба b - 0-ээс 255 хүртэл) агуулсан өнгийг буцаана ARGB(a,r,g,b: байт): Өнгө ; Оруулсан өнгийг буцаана

Энд бүрэн жагсаалт BOL-аас авсан мөр функцүүд:

Үр дүн нь 11. Аль үсэг болохыг мэдэхийн тулд бид мэдэгдэж буй ASCII код (0-ээс 255 хүртэл) өгөгдсөн тэмдэгтийг буцаадаг CHAR функцийг ашиглаж болно.

Жишээлбэл, бүх цагаан толгойн үсгийн кодуудын хүснэгтийг эндээс авах боломжтой.

SELECT CHAR(ASCII("a")+ num-1) үсэг, ASCII("a")+ num - 1 FROM (SELECT 5*5*(a-1)+5*(b-1) + c AS тоо (СОНГОХ 1 a UNION БҮХ СОНГОХ 2 UNION БҮХ СОНГОХ 3 UNION БҮХ СОНГОХ 4 UNION БҮХ СОНГОХ 5) x CROSS JOIN (СОНГОХ 1 b UNION БҮХ СОНГОХ 2 UNION БҮХ СОНГОХ 3 UNION БҮХ СОНГОХ 4 UNION БҮХ СОНГОХ 5) y CROSS JOIN SELECT 1 c UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION БҮХ СОНГОХ 5) z) x WHERE ASCII("a")+ num -1 ASCII("a") БА ASCII("z") ХООРОНД

Тоон дарааллыг бий болгох талаар хараахан мэдээгүй байгаа хүмүүст би холбогдох нийтлэлд хандана уу.

Та бүхний мэдэж байгаагаар жижиг, том үсгийн кодууд өөр өөр байдаг. Тиймээс, асуулгыг дахин бичихгүйгээр бүрэн багцыг авахын тулд дээрх кодтой ижил төстэй кодыг нэмэхэд хангалттай.

Шаардлагатай бол энэ захидлыг хүснэгтэд нэмэхэд хэцүү биш гэдэгт би итгэж байна.

Одоо мөрийн илэрхийлэлд хүссэн дэд мөрийг олох асуудлыг авч үзье. Үүний тулд хоёр функцийг ашиглаж болно - CHARINDEXТэгээд PATINDEX. Тэд хоёулаа мөр дэх дэд мөрийн эхлэлийн байрлалыг (дэд мөрийн эхний тэмдэгтийн байрлал) буцаана. CHARINDEX функц нь синтакстай:

CHARINDEX ( хайлтын_илэрхийлэл, тэмдэгт_илэрхийлэл[, эхлэх_байрлал])

Энд бүхэл тооны нэмэлт параметр байна эхлэх_байрлалнь хайлт хийх мөрийн илэрхийлэл дэх байрлалыг заана хайлтын_илэрхийлэл. Хэрэв энэ параметрийг орхигдуулсан бол хайлтыг эхнээс нь гүйцэтгэнэ тэмдэгт_илэрхийлэл. Жишээлбэл, хүсэлт

Хэрэв хайж буй дэд мөр эсвэл мөрийн илэрхийлэл NULL байвал функцийн үр дүн мөн NULL байх болно гэдгийг тэмдэглэх нь зүйтэй.

Дараах жишээ нь "Калифорниа" хөлөг онгоцны нэр дэх "а" тэмдэгтийн эхний болон хоёр дахь тохиолдлын байрлалыг тодорхойлдог.

Жишээлбэл, эхний ба сүүлчийнх нь "e" гэсэн гурван тэмдэгтийн дарааллыг агуулсан хөлөг онгоцны нэрийг хэрхэн олох вэ:

Уурын өрөө рүү ЗҮҮНфункц ЗӨВтэмдэгт мөрийн баруун талд өгөгдсөн тоог буцаана:

ЗӨВ(<мөрийн илэрхийлэл>,<тэмдэгтүүдийн тоо>)

Жишээлбэл, ижил үсгээр эхэлж, төгсдөг хөлөг онгоцны нэрийг хэрхэн тодорхойлохыг эндээс үзнэ үү.

Энд бид ангийн нэр болон хөлөг онгоцны нэрийг зайгаар тусгаарлана. Нэмж дурдахад, бүх бүтцийг функцын аргумент болгон давтахгүйн тулд бид дэд асуулга ашигладаг. Үр дүн нь дараах байдлаар харагдах болно.

Энэ тохиолдлыг хасахын тулд та өөр нэгийг ашиглаж болно ашигтай шинж чанар лен (<мөрийн илэрхийлэл>) , энэ нь мөр дэх тэмдэгтүүдийн тоог буцаана. Тэмдэгтийн тоо нэгээс их байх тохиолдолд бид өөрсдийгөө хязгаарладаг:

Чиг үүрэг ХАВТРААХ"abcde" тогтмолыг баруун талд нь функцээр тооцдоггүй таван зайтай дэвсгэр ЛЕН, - хоёр тохиолдолд бид 5-ыг авна.
Чиг үүрэг DATAENGTHхувьсагчийн дүрслэл дэх байтуудын тоог гаргаж, CHAR болон VARCHAR төрлүүдийн ялгааг харуулна. DATAENGTHбидэнд CHAR-д 12, VARCHAR-д 10-ыг өгөх болно.
Хүссэнээр, DATAENGTH VARCHAR хувьсагчийн хувьд хувьсагчийн бодит уртыг буцаана. Гэхдээ яагаад CHAR төрлийн хувьсагчийн үр дүн 12 байна вэ? Гол нь CHAR бол төрөл юм тогтмол урт. Хэрэв хувьсагчийн утга нь түүний уртаас бага бөгөөд бид уртыг CHAR(12) гэж зарласан бол хувьсагчийн утгыг арын зайг нэмж шаардлагатай урттай "зохицуулах" болно.

Сайт дээр заасан утгыг тоон дарааллаар захиалах (хамгийн ихийг олох гэх мэт) шаардлагатай ажлууд байдаг. текст формат. Жишээлбэл, онгоцны суудлын дугаар ("2d") эсвэл CD хурд ("24x"). Асуудал нь текстийг ингэж эрэмбэлэх явдал юм (өсөх)

Хэрэв газруудыг эгнээний өсөх дарааллаар байрлуулах шаардлагатай бол дараалал нь дараах байдалтай байна.

Хэрэв бид үүгээр хязгаарлагдах юм бол бид авах болно

Энэ нь эрэмбэлэх хэвээр байна



Ачааж байна...
Топ