Category : SQL

Written on Feb, 15, 2021 by in , | Leave a comment

İlteriş Mutlu, baklava ve SQL’in birleştiği bu leziz puzzle’ı, iftiharla sunar. Elimizde şerbetli tatlı satan bir dükkanın cafe kısmındaki satışlarının olduğu tablo var. Amaç; en fazla satılan 5 ürünü tespit edip, cebinde 30 tl, 50tl, 60tl,80tl,120tl v.s. olan müşteriler için sırayla en çok satılan ürünlere göre tabak sunmaktır. Eğer 5 ürünü tabağa koyduktan sonra hala para kalmışsa, en çok satılan …

Continue Reading...
Written on Feb, 07, 2021 by in , , , , | Leave a comment

Oracle’da başlangıç ve bitiş tarihleri verip, bir loop yapmak istenirse CONNECT BY LEVEL yapısı kullanılabilir. By declaring start and end end you can make a loop with CONNECT BY LEVEL clause. DECLARE v_start DATE := TO_DATE(‘23.01.2021′,’DD.MM.YYYY’); v_end DATE := TO_DATE(‘03.02.2021′,’DD.MM.YYYY’); v_date DATE; CURSOR c_dates IS SELECT v_start+LEVEL-1 AS v_date FROM sys.dual CONNECT BY LEVEL <= v_end-v_start+1; BEGIN OPEN c_dates; LOOP …

Continue Reading...
Written on Jan, 28, 2021 by in , | Leave a comment

Two tables are given as shown picture below. First columns are unique. You should join and generate target table as shown picture below. Target table must contains all data. But there is a exception. If second column (col_2) of the first table (tbl_1) is “-1”, surpluss(excess) data of second table (tbl_2) will match col_2= “-1” row. In other words, surpluss(excess) …

Continue Reading...
Written on Jan, 27, 2021 by in , | Leave a comment

Aynı değerler için text (character) ve date dönüşümlerini hem SQL Server için hem de Oracle için böylece rahatca kıyaslama yapabilirsiniz. Same text (character) and date conversations were applied on SQL Server and Oracle. In this way you can compare codes easily. Convert text to Date type in Oracle, Cast character to Date type in Oracle, Convert character to Date in …

Continue Reading...
Written on Jan, 23, 2021 by in , | Leave a comment

Aşağıda resimde görülen şekilde col2 sütununun doldurulması gerekiyor. The output should be as shown picture below. create table tbl (col1 number(3),col2 number(3)); insert into tbl values (1,null);insert into tbl values (2,null);insert into tbl values (3,null);insert into tbl values (4,null);insert into tbl values (5,null);insert into tbl values (6,null);insert into tbl values (7,null);insert into tbl values (8,null);insert into tbl values (9,null);insert into …

Continue Reading...
Written on Jan, 23, 2021 by in | Leave a comment

1’den 100’e kadar satır satır data üretmek istediğimizde veya belirli 2 tarih arasında satır satır data üretmek istediğimizde Oracle’ın CONNECT BY LEVEL özelliğini kullanabiliriz. Ben test datası üretmek ve kartezyen join yapacağım zaman bu özelliği kullanıyorum. 0′ değeri: başlangıç+1 değeridir. 10 değeri : bitiş değeridir. 10’a kadar sırala demektir. Tarihsel data üretimi için : http://www.ilterismutlu.com/oracle-pl-sql-ay-sonlarinin-listelenmesi/

Continue Reading...
Written on Jan, 22, 2021 by in , | Leave a comment

5×5 boş matristen, aşağıdaki datayı üretiniz. 5×5 empty matrix is given. Matrix will be populated according to the screenshot below.

Continue Reading...
Written on Oct, 08, 2020 by in , , | Leave a comment

Oracle’ın Built-in fonksiyonu olan Coalesce maalesef çok fazla bilinmiyor. En basit tarif ile “Değer NULL ise yanındaki sağındaki değere bak” söyliyebilirim. Bu fonksiyonu iç içe geçmiş NVL,DECODE yerine kullanılabilir. Bu fonksiyon bilinmediği zaman okunması zor olan kodlar ortaya çıkıyor. Basit bir örnek vermek gerekir ise: Test için örnek data: Örnek Kod ( script aşağıda) SELECT 1 as ID, NULL sutun1, …

Continue Reading...
Written on Aug, 04, 2017 by in , | Leave a comment

Oracle’da oluşturulmuş olan bir tablonun veya view’ın sütununun tipi LONG ise bunda doğrudan arama ( where ) yapamayız. Ve şu hata ile karşılaşırız: ORA-00997: geçersiz LONG veri türü kullanımı ORA-00997 Illegal use of long datatype Çözüm:

Continue Reading...

PL SQL de asal sayıları bulmak için aşağıdaki kodu kullanabilirsiniz. Kodu kabaca anlatmak gerekirse. 1’den 1000’e kadar olan tüm sayıları üretip with as ile all_numbers’ı oluşturdum. ALL_NUMBERS’ı cartezyen (cross) join yaptım. Böylece her sayıyı, bölen başka bir sayı var mı diye kontroınl ettim. 1 sayısı her sayıya tam olarak bölündüğü için ve her sayı kendisine tam olarak bölündüğü için bunları …

Continue Reading...