0 oy
189 gösterim
SQL de 2 tane tablodan veri çekmeye çalışıyorum ve karşıma Cannot resolve collation conflict between "Turkish_CI_AS" and "Latin1_General_CI_AS" in add operator occurring in SELECT statement column 3 hatası çıkıyor. Tabloda bir değişiklik yapma yetkim de yok. Sorguyu çalışır hale nasıl getirebilirim?

1 cevap

0 oy

Sql sorgunuzu paylaşsaydınız daha güzel olurdu ama yine de cevaplamaya çalışayım. Sql sorgunuzun select içerisinde ki 3.kolonda collactions problemi var. Tabloya müdahale etmeye yetkim yok dediğiniz için sorgu içerisinde COLLATE ile bu hatayı giderebilirsiniz. Sql kodunuzu paylaşmadığınız için örnek bir kod üzerinde anlatmaya çalışacağım. 

Kodunuzun aşağıda ki şekilde olduğunu varsayalım;

SELECT 

a.Id,b.Number,
CASE 
WHEN b.Number > 0  THEN b.Name 
ELSE b.Name+','+b.Number
END Name


FROM TableA a
LEFT OUTER JOIN TableB b ON(a.id=b.refId)
WHERE a.Status='1'

3. kolonunuzda COLLATE kullandığınız taktirde hata giderilecektir

SELECT 

a.Id,b.Number,
CASE 
WHEN b.Number > 0  THEN b.Name 
ELSE b.Name+','+b.Number
END COLLATE Turkish_CI_AS Name


FROM TableA a
LEFT OUTER JOIN TableB b ON(a.id=b.refId)
WHERE a.Status='1'

COLLATE yukarıda da anlaşılabileceği üzere collations uyuşmazlıklarında kullanılır. Umarım faydalı olmuştur

Türkiye'nin en iyi soru cevap sitesi | SorSoyleyelim.com

İlgili sorular

0 oy
1 cevap

Web sitemiz hakkında ki reklam,istek,öneri ve şikayetlerinizi iletisim(at)sorsoyleyelim.com adresine mail atabilir veya sitemizin iletişim formu üzerinden bize yazabilirsiniz.
Sitede ki içeriklerin izinsiz kullanılması ya da kopyalanması yasaktır. Bknz: Kullanım şartları.
...