search
Giriş
Merhabalar arkadaşlar, Sitemizi programlama ile ilgilenen bütün arkadaşlarımızın Türkçe içerik konusunda çektiği sıkıntılar düşünülerek soru/cevap şeklinde bir etkileşimde bulunabilmesi için kurduk. Umuyoruz hepimiz için güzel bir deneyim olur. Hasscript Ekibi
0 oy
5.4k gösterim

Selam,
Elimde iki tablo var ANA_TABLO, DIL_BILGILERI . Seçtiğim tablodaki bir sütun değerlerini baz alarak, diğer bir tabloda bulunan verileri güncellemek istiyorum.

Mesela; ANA_TABLO tablosunda "DILLER" sütunu var. Bu alanı farklı dilleri içeriyor Türkçe, İngilizce, Almanca vs. Ben bunun kısa kod şekilde tutulmasını istiyorum. Türkçe --> TR, İngilizce-->EN şeklinde yani. İkinci tablom olan DIL_BILGILERI hangi dilin hangi koda denk geldiğini tutmaktadır. Bu nedenle DIL_BILGILERI tablosunu kullanarak ANA_TABLO tablosundaki tüm "DILLER" sütununu güncellemek istiyorum. Nasıl yapabilirim. 

ANA_TABLO daki güncellemek istediğim sütun değerleri aşağıdaki gibi

DILLER
----------
Turkce
Ingılızce
Almanca 
....
Elimde aynı zamanda bir tanım tablosu var dil seçenekleri için (DIL_BILGILERI olsun),

KOD  AD
----------------
TR    TURKCE
EN    Ingilizce
DE    ALMANCA

Veri Tabanı kategorisinde 2.0k puan
yeniden etikenlendirildi

2 Cevap

0 oy

[Güncellendi ]Öncelikle eğer match etmeye calıştığımızda data içinde boşluk filan var mı diye bir trim() yaptım, sonrasında büyük küçük harf için sensitive olduğu için de karşılaştırıken de sana önerim hem tanım tablosundaki baz aldığın sutün değeri ile senin güncellemek istedin sütun değerlerini UPPER() ya da LOWER() ile karşılaştırmak gerekmektedir. Bunlarıda en son bir FOR döngüsüne alabilirz.

UPDATE ANA_TABLO at
  SET at.DILLER = ( SELECT dd.KOD  FROM DIL_BILGILERI dd
                                WHERE trim(upper(dd.AD)) = trim(upper(at.DILLLER))    )


VEYA

UPDATE ANA_TABLO  at
    SET at.DILLER  = dd.KOD  
FROM DIL_BILGILERI  dd
WHERE  trim(upper(dd.AD)) = trim(upper(at.DILLLER))


stackoverflow örnekleri ;


http://stackoverflow.com/questions/1068447/update-with-two-tables
http://stackoverflow.com/questions/2815953/update-query-with-join-on-two-tables
http://stackoverflow.com/questions/7030699/oracle-sql-update-a-table-with-data-from-another-table

2.0k puan
düzenledi
Else-if kullanarak update demişsin, fakat kod içinde ne if ne else var :)

Yanlış bir soru/cevap oldu herhalde.
0 oy

güncellemek istediğim bir tabloyu , 2 farklı tabloyu baz alarak değişiklik yapmak istemiştim, şu şekilde çözdüm; 

UPDATE ANA_TABLO MA
   SET MA.DILLER  =
       (SELECT CO.KOD  
          FROM DIL_BILGILERI  CO
         WHERE CO.CODE = MA.COUNTRY)
 WHERE  EXISTS (SELECT MA.TEST_ID
          FROM THIRD_TABLE RR
         WHERE MA.TEST_ID = TO_CHAR(RR.TEST_ID))

 

2.0k puan
düzenledi

İlgili sorular

0 oy
0 cevap 514 gösterim
514 gösterim
Selamlar, Elimdeki iki tane A ve B diye tablo var. B tablosundaki bir sütunu A tablosundanki bir sütunla güncellemek istiyorum. Bunun için şöyle bir sorgu yaptım; UPDATE identityiq.karsilastirma2 SET email = (SELECT departman FROM identityiq.karsilastirma1 WHERE ... kullanmak istemiyorum. Kullanmadığım takdirde hata veriyor. Herhangi bir şarta bakmadan direk A da ki verileri B ye alabilir miyim?
27 Mayıs 2021 Veri Tabanı kategorisinde kupanintorunu 365 puan sordu
0 oy
1 cevap 953 gösterim
953 gösterim
Selam, veri tabanımda tolga'nın kitabları diye bir kaydı bulmak istiyorum nasıl bir SQL yazmalıyım?
20 Kasım 2016 Veri Tabanı kategorisinde tolgacelik.art 2.0k puan sordu
0 oy
1 cevap 673 gösterim
673 gösterim
MySQLveri tabanında çoklu tabloları LEFT, RIGHT ve FULL OUTER JOIN nedir ve nasıl query yazılır?
22 Temmuz 2017 Veri Tabanı kategorisinde tolgacelik.art 2.0k puan sordu
0 oy
1 cevap 3.7K gösterim
3.7K gösterim
Selamlar, Elimde iki tane tablo var; A_tablo B_tablo B tablosundaki departman sütunu ile A tablosundaki departman sütunundaki değerleri farklarını almak istiyorum. Bunun için ne yapabilirim? Çıktı şöyle olmalı: pci dss bt
27 Mayıs 2021 Veri Tabanı kategorisinde kupanintorunu 365 puan sordu
0 oy
2 cevap 3K gösterim
3K gösterim
pl sql developer kullanarak bir select atıyorum date formatı için SELECT TO_DATE('04-JUL-15', 'DD-MON-YY') FROM dual; ancak "ORA-01843: geçerli bir ay değil" hatası aldım. UAT ortamımızda düzgün çalışırken, PROD ortamımızda çalışmadı nedendir acaba?
26 Ekim 2016 Veri Tabanı kategorisinde tolgacelik.art 2.0k puan sordu