{"id":8006,"date":"2023-08-26T20:20:53","date_gmt":"2023-08-26T20:20:53","guid":{"rendered":"https:\/\/megnyitasa.com\/tudas\/?p=8006"},"modified":"2023-08-26T20:20:53","modified_gmt":"2023-08-26T20:20:53","slug":"sql-konverzio-egesz-szamok-atalakitasa-karakterekke","status":"publish","type":"post","link":"https:\/\/megnyitasa.com\/tudas\/sql-konverzio-egesz-szamok-atalakitasa-karakterekke\/","title":{"rendered":"SQL konverzi\u00f3: Eg\u00e9sz sz\u00e1mok \u00e1talak\u00edt\u00e1sa karakterekk\u00e9"},"content":{"rendered":"<div class=\"articlecontent\">\n<div class=\"newlinediv\"><\/div>\n<p> Az SQL vagy Structured Query Language egy sz\u00e1m\u00edt\u00f3g\u00e9pes nyelv, amelyet adatb\u00e1zisok kezel\u00e9s\u00e9re \u00e9s manipul\u00e1l\u00e1s\u00e1ra haszn\u00e1lnak. Az SQL egyik alapvet\u0151 m\u0171velete az adatkonverzi\u00f3. Ez a folyamat egy \u00e9rt\u00e9k adatt\u00edpus\u00e1nak egyik form\u00e1r\u00f3l a m\u00e1sikra t\u00f6rt\u00e9n\u0151 megv\u00e1ltoztat\u00e1s\u00e1t jelenti. Ebben a cikkben az SQL-ben az eg\u00e9sz sz\u00e1mok karakterekk\u00e9 val\u00f3 \u00e1talak\u00edt\u00e1s\u00e1ra \u00f6sszpontos\u00edtunk. <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> Az SQL-ben az eg\u00e9sz sz\u00e1mok numerikus adatt\u00edpusok, amelyek eg\u00e9sz sz\u00e1mokat jel\u00f6lnek. Ezzel szemben a karakterek nem numerikus adatt\u00edpusok, amelyek sz\u00f6veget k\u00e9pviselnek. Bizonyos esetekben sz\u00fcks\u00e9g lehet az eg\u00e9sz sz\u00e1mok karakterekk\u00e9 t\u00f6rt\u00e9n\u0151 \u00e1talak\u00edt\u00e1s\u00e1ra, k\u00fcl\u00f6n\u00f6sen a karakterl\u00e1ncf\u00fcggv\u00e9nyekkel val\u00f3 munka vagy az adatok sz\u00f6veges form\u00e1tumban t\u00f6rt\u00e9n\u0151 megjelen\u00edt\u00e9se sor\u00e1n. <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> Eg\u00e9sz sz\u00e1mok karakterr\u00e9 alak\u00edt\u00e1s\u00e1hoz az SQL-ben a CAST vagy CONVERT f\u00fcggv\u00e9nyt haszn\u00e1ljuk. A CAST f\u00fcggv\u00e9ny egy \u00e9rt\u00e9ket egyik adatt\u00edpusb\u00f3l egy m\u00e1sikba konvert\u00e1l, m\u00edg a CONVERT f\u00fcggv\u00e9ny egy \u00e9rt\u00e9ket egyik adatt\u00edpusb\u00f3l egy m\u00e1sikba konvert\u00e1l egy megadott st\u00edlusban. Eg\u00e9sz sz\u00e1m karakterr\u00e9 konvert\u00e1l\u00e1s\u00e1hoz a k\u00e9t f\u00fcggv\u00e9ny b\u00e1rmelyik\u00e9t haszn\u00e1lhatjuk, de a CAST f\u00fcggv\u00e9nyt egyszer\u0171s\u00e9ge miatt el\u0151nyben r\u00e9szes\u00edtj\u00fck. <\/p>\n<div class=\"title\"> Eg\u00e9sz sz\u00e1m karakterr\u00e9 konvert\u00e1l\u00e1s\u00e1hoz a CAST f\u00fcggv\u00e9ny seg\u00edts\u00e9g\u00e9vel az al\u00e1bbi szintaxist k\u00f6vetj\u00fck: <\/div>\n<div class=\"newlinediv\"><\/div>\n<p> &#8222;` <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> CAST (integer_value AS char [ ( length ) ] ) <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> &#8222;` <\/p>\n<div class=\"newlinediv\"><\/div>\n<div class=\"newlinediv\"><\/div>\n<p> A fenti szintaxisban integer_value a konvert\u00e1lni k\u00edv\u00e1nt eg\u00e9sz sz\u00e1m, char a karakter adatt\u00edpus, length pedig a kapott karakter maxim\u00e1lis hossza. Ha nem adjuk meg a length param\u00e9tert, akkor a kapott karakter hossza megegyezik az integer \u00e9rt\u00e9kkel. P\u00e9ld\u00e1ul az 1234 eg\u00e9sz sz\u00e1mot karakterr\u00e9 konvert\u00e1lhatjuk a k\u00f6vetkez\u0151 SQL-lek\u00e9rdez\u00e9ssel: <\/p>\n<div class=\"newlinediv\"><\/div>\n<div class=\"newlinediv\"><\/div>\n<p> &#8222;&#8222; <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> SELECT CAST(1234 AS char) <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> &#8222;&#8222; <\/p>\n<div class=\"newlinediv\"><\/div>\n<div class=\"title\"> Az eredm\u00e9ny egy &#8216;1234&#8217; karakteres \u00e9rt\u00e9k lesz. <\/div>\n<p> \u00d6sszefoglalva, az eg\u00e9sz sz\u00e1mok karakterr\u00e9 alak\u00edt\u00e1sa egyszer\u0171 folyamat az SQL-ben. A m\u0171velet elv\u00e9gz\u00e9s\u00e9hez a CAST vagy a CONVERT f\u00fcggv\u00e9nyt haszn\u00e1lhatjuk. A pontos eredm\u00e9ny \u00e9rdek\u00e9ben fontos, hogy meg\u00e9rts\u00fck az \u00e9rintett adatt\u00edpusokat \u00e9s megadjuk a megfelel\u0151 param\u00e9tereket. Ezen ismeretek birtok\u00e1ban az SQL-fejleszt\u0151k k\u00fcl\u00f6nb\u00f6z\u0151 form\u00e1tum\u00fa adatokat manipul\u00e1lhatnak \u00e9s jelen\u00edthetnek meg, n\u00f6velve ezzel az adatb\u00e1zis-alkalmaz\u00e1sok haszn\u00e1lhat\u00f3s\u00e1g\u00e1t.<\/p><\/div>\n<div class=\"questions\">\n<div class=\"questionstitle\">FAQ<\/div>\n<div class=\"question\">\n<div class=\"qtitle\"> Hogyan alak\u00edthat\u00f3k \u00e1t a sz\u00e1mok szavakk\u00e1 az SQL-ben?<\/div>\n<p> Egy \u00faj v\u00e1llalkoz\u00e1s alap\u00edt\u00e1sakor elengedhetetlen, hogy j\u00f3l \u00e9rts\u00fck, hogyan kezelj\u00fck hat\u00e9konyan az adatokat. Ennek r\u00e9szek\u00e9nt sz\u00fcks\u00e9g lehet arra, hogy a sz\u00e1mokat SQL-ben szavakk\u00e1 alak\u00edtsa \u00e1t, hogy az adatok k\u00f6nnyebben \u00e1ttekinthet\u0151k legyenek r\u00e1n\u00e9z\u00e9sre. \u00cdme, hogyan teheti ezt meg: <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> 1. Hozzon l\u00e9tre egy f\u00fcggv\u00e9nyt a sz\u00e1mok szavakk\u00e1 alak\u00edt\u00e1s\u00e1hoz. \u00cdme egy p\u00e9lda: <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> &#8222;` <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> CREATE FUNCTION dbo.NumToWords(@Number INT) <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> RETURNS VARCHAR(8000) <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> AS <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> BEGIN <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> DECLARE @Words VARCHAR(8000) <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> SET @Words = &#8221; <\/p>\n<div class=\"newlinediv\"><\/div>\n<div class=\"newlinediv\"><\/div>\n<p> IF @Number = 0 <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> SET @Words = &#8216;Zero&#8217; <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> ELSE <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> BEGIN <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> DECLARE @Units TABLE (ID INT, Word VARCHAR(10)) <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> INSERT INTO @Units VALUES (1, &#8216;One&#8217;), (2, &#8216;Two&#8217;), (3, &#8216;Three&#8217;), (4, &#8216;Four&#8217;), (5, &#8216;Five&#8217;), (6, &#8216;Six&#8217;), (7, &#8216;Seven&#8217;), (8, &#8216;Eight&#8217;), (9, &#8216;Nine&#8217;) <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> DECLARE @Tens TABLE (ID INT, Word VARCHAR(10)) <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> INSERT INTO @Tens VALUES (1, &#8216;Ten&#8217;), (2, &#8216;Twenty&#8217;), (3, &#8216;Thirty&#8217;), (4, &#8216;Forty&#8217;), (5, &#8216;Fifty&#8217;), (6, &#8216;Sixty&#8217;), (7, &#8216;Seventy&#8217;), (8, &#8216;Eighty&#8217;), (9, &#8216;Ninety&#8217;) <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> DECLARE @Teens TABLE (ID INT, Word VARCHAR(10)) <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> INSERT INTO @Teens VALUES (11, &#8216;Eleven&#8217;), (12, &#8216;Twelve&#8217;), (13, &#8216;Thirteen&#8217;), (14, &#8216;Tizenn\u00e9gy&#8217;), (15, &#8216;Tizen\u00f6t&#8217;), (16, &#8216;Tizenhat&#8217;), (17, &#8216;Tizenh\u00e9t&#8217;), (18, &#8216;Tizennyolc&#8217;), (19, &#8216;Tizenkilenc&#8217;) <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> DECLARE @Thousands TABLE (ID INT, Word VARCHAR(10)) <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> INSERT INTO @Thousands VALUES (1, &#8216;Ezer&#8217;), (2, &#8216;Milli\u00f3&#8217;), (3, &#8216;Milli\u00e1rd&#8217;), (4, &#8216;Trillion&#8217;) <\/p>\n<div class=\"newlinediv\"><\/div>\n<div class=\"newlinediv\"><\/div>\n<p> DECLARE @Remainder INT <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> DECLARE @Quotient INT <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> DECLARE @Hundreds INT <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> DECLARE @TensVal INT <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> DECLARE @UnitsVal INT <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> DECLARE @Index INT <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> DECLARE @GroupCount INT <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> DECLARE @GroupValue INT <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> DECLARE @GroupWords VARCHAR(8000) <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> SET @Index = 1 <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> SET @GroupCount = 0 <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> SET @Remainder = @Number <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> WHILE @Remainder &gt; 0 <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> BEGIN <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> SET @Quotient = @Remainder \/ 1000 <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> SET @Remainder = @Remainder % 1000 <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> SET @Remainder % 1000 <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> SET @Hundreds = @Remainder \/ 100 <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> SET @Remainder = @Remainder % 100 <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> SET @TensVal = @Remainder \/ 10 <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> SET @Remainder = @Remainder % 10 <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> SET @UnitsVal = @Remainder <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> SET @GroupValue = (@Hundreds * 100) + (@TensVal * 10) + @UnitsVal <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> SET @GroupWords = &#8221; <\/p>\n<div class=\"newlinediv\"><\/div>\n<div class=\"newlinediv\"><\/div>\n<p> IF @GroupValue &gt; 0 <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> BEGIN <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> IF @Hundreds &gt; 0 <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> BEGIN <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> SET @GroupWords = @GroupWords + (SELECT Word FROM @Units WHERE ID = @Hundreds) + &#8216; Hundred&#8217; <\/p>\n<div class=\"newlinediv\"><\/div>\n<div class=\"newlinediv\"><\/div>\n<p> IF @GroupValue &gt; 100 <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> SET @GroupWords = @GroupWords + &#8216; &#8216; <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> END <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> IF @TensVal = 1 AND @UnitsVal &gt; 0 <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> BEGIN <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> SET @GroupWords = @GroupWords + (SELECT Word FROM @Teens WHERE ID = (@UnitsVal + 10)) <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> END <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> ELSE <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> BEGIN <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> IF @TensVal &gt; 0 <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> BEGIN <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> SET @GroupWords = @GroupWords + (SELECT Word FROM @Tens WHERE ID = @TensVal) <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> IF @UnitsVal &gt; 0 <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> SET @GroupWords = @GroupWords + &#8216; &#8216; <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> END <\/p>\n<div class=\"newlinediv\"><\/div>\n<div class=\"newlinediv\"><\/div>\n<p> IF @UnitsVal &gt; 0 AND @TensVal  1 <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> BEGIN <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> SET @GroupWords = @GroupWords + (SELECT Word FROM @Units WHERE ID = @UnitsVal) <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> END <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> END <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> IF @GroupCount &gt; 0 AND @GroupWords  &#8221; <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> SET @GroupWords = @GroupWords + &#8216; &#8216; + (SELECT Word FROM @Thousands WHERE ID = @GroupCount) <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> SET @GroupCount = @GroupCount + 1 <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> END <\/p>\n<div class=\"newlinediv\"><\/div>\n<div class=\"newlinediv\"><\/div>\n<p> SET @Index = @Index * 1000 <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> IF @GroupWords  &#8221; <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> BEGIN <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> IF @Words  &#8221; <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> SET @Words = &#8216; &#8216; &#8216; + @Words <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> SET @Words = @GroupWords + @Words <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> END <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> END <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> END <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> END <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> RETURN @Words <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> END <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> &#8222;` <\/p>\n<div class=\"newlinediv\"><\/div>\n<div class=\"newlinediv\"><\/div>\n<p> 2. A f\u00fcggv\u00e9ny seg\u00edts\u00e9g\u00e9vel alak\u00edtsuk \u00e1t a sz\u00e1mokat szavakk\u00e1. \u00cdme egy p\u00e9lda: <\/p>\n<div class=\"newlinediv\"><\/div>\n<div class=\"newlinediv\"><\/div>\n<p> &#8222;&#8222; <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> SELECT dbo.NumToWords(123456789) <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> &#8222;&#8222; <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> Ez a &#8222;Sz\u00e1zhuszonh\u00e1rommilli\u00f3-n\u00e9gysz\u00e1z\u00f6tvenhatezer-h\u00e9tsz\u00e1znyolcvankilenc&#8221; karakterl\u00e1ncot adja vissza.<\/p>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Az SQL vagy Structured Query Language egy sz\u00e1m\u00edt\u00f3g\u00e9pes nyelv, amelyet adatb\u00e1zisok kezel\u00e9s\u00e9re \u00e9s manipul\u00e1l\u00e1s\u00e1ra haszn\u00e1lnak. Az SQL egyik alapvet\u0151 m\u0171velete az adatkonverzi\u00f3. Ez a folyamat egy \u00e9rt\u00e9k adatt\u00edpus\u00e1nak egyik form\u00e1r\u00f3l a m\u00e1sikra t\u00f6rt\u00e9n\u0151 megv\u00e1ltoztat\u00e1s\u00e1t jelenti. Ebben a cikkben az SQL-ben az eg\u00e9sz sz\u00e1mok karakterekk\u00e9 val\u00f3 \u00e1talak\u00edt\u00e1s\u00e1ra \u00f6sszpontos\u00edtunk. Az SQL-ben az eg\u00e9sz sz\u00e1mok numerikus adatt\u00edpusok, amelyek &#8230; <a title=\"SQL konverzi\u00f3: Eg\u00e9sz sz\u00e1mok \u00e1talak\u00edt\u00e1sa karakterekk\u00e9\" class=\"read-more\" href=\"https:\/\/megnyitasa.com\/tudas\/sql-konverzio-egesz-szamok-atalakitasa-karakterekke\/\" aria-label=\"Read more about SQL konverzi\u00f3: Eg\u00e9sz sz\u00e1mok \u00e1talak\u00edt\u00e1sa karakterekk\u00e9\">Read more<\/a><\/p>\n","protected":false},"author":3380,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-8006","post","type-post","status-publish","format-standard","hentry","category-uj-vallalkozas-letrehozasa"],"_links":{"self":[{"href":"https:\/\/megnyitasa.com\/tudas\/wp-json\/wp\/v2\/posts\/8006","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/megnyitasa.com\/tudas\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/megnyitasa.com\/tudas\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/megnyitasa.com\/tudas\/wp-json\/wp\/v2\/users\/3380"}],"replies":[{"embeddable":true,"href":"https:\/\/megnyitasa.com\/tudas\/wp-json\/wp\/v2\/comments?post=8006"}],"version-history":[{"count":0,"href":"https:\/\/megnyitasa.com\/tudas\/wp-json\/wp\/v2\/posts\/8006\/revisions"}],"wp:attachment":[{"href":"https:\/\/megnyitasa.com\/tudas\/wp-json\/wp\/v2\/media?parent=8006"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/megnyitasa.com\/tudas\/wp-json\/wp\/v2\/categories?post=8006"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/megnyitasa.com\/tudas\/wp-json\/wp\/v2\/tags?post=8006"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}