folder Tahribat.com Forumları
linefolder Database - Veritabanı
linefolder T-Sql Yardım ( Order By )



T-Sql Yardım ( Order By )

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    cemnet
    cemnet's avatar
    Kayıt Tarihi: 18/Eylül/2007
    Erkek

    Selam arkadaşlar bi sql sorgum var tablodaki kayıtlara IN komutu ile birden fazla değer çekiyorum. Şu alttaki sorgu çalışırken kendi kendine id numaralarına order by asc yapıyor. Ben istiyorum ki nasıl yazılmışsa öyle çıksın sıralı olarak order by yapmasın 

     

    select * from Sembol where SembolID in(79,67,74,78,69,0)  



     

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ozgunlu
    ozgunlu's avatar
    Banlanmış Üye
    Kayıt Tarihi: 11/Kasım/2011
    Erkek
    cemnet bunu yazdı
    select * from Sembol where SembolID in(79,67,74,78,69,0)  
    select * from Sembol where SembolID in(79,67,74,78,69,0) ORDER BY FIELD (id, 79, 67, 74, 78, 69, 0);

     

     

    ozgunlu tarafından 02/Şub/16 17:12 tarihinde düzenlenmiştir

    Hello, i am nothing. I come from Neverland.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    cemnet
    cemnet's avatar
    Kayıt Tarihi: 18/Eylül/2007
    Erkek

    hoca emin misin bundan?

  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ozgunlu
    ozgunlu's avatar
    Banlanmış Üye
    Kayıt Tarihi: 11/Kasım/2011
    Erkek
    cemnet bunu yazdı

    hoca emin misin bundan?

    Yes, ref linkini yazmayi unutmusum. Simdi teldeyim bulabilirsem koyarim. Id yerine sembolid olcak

    Sorunu dogru anladiysam cevabinda burda:

    http://stackoverflow.com/questions/8055138/mysql-sort-order-by-array-value

    ozgunlu tarafından 02/Şub/16 17:45 tarihinde düzenlenmiştir

    Hello, i am nothing. I come from Neverland.
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    buzukatak
    buzukatak's avatar
    Kayıt Tarihi: 27/Haziran/2010
    Erkek
    ozgunlu bunu yazdı
    cemnet bunu yazdı

    hoca emin misin bundan?

    Yes, ref linkini yazmayi unutmusum. Simdi teldeyim bulabilirsem koyarim. Id yerine sembolid olcak

    Sorunu dogru anladiysam cevabinda burda:

    http://stackoverflow.com/questions/8055138/mysql-sort-order-by-array-value

    T-SQL SQL Server'da kullanılan SQL türevidir. Her ne kadar soruda T-SQL'e özgü bir şey yoksa da buradan konu sahibinin SQL Server kullandığını çıkarmak doğru olur, önerin MySQL için geçerli.

    @cemnet kendi kendine dediğin şey açık şekilde olması gerekendir. Sonucun Where ifadesine göre sıralanması ancak bug olur.

    SQL Server veriyi (veya ilgili indeksi) sırayla tarayıp eşleşme varsa sonuca ekler, bu yüzden varsayılan sıralamaya göre sonuç alırsın.

    İstediğin gibi olması için şöyle tatsız bir sorgu yazman gerekli.

    Select * from Sembol where SembolID in(79,67,74,78,69,0) 
    Order By Case
    When SembolID = 79 Then 0
    When SembolID = 67 Then 1
    When SembolID = 74 Then 2
    When SembolID = 78 Then 3
    When SembolID = 69 Then 4
    When SembolID = 0 Then 5
    End Asc

     

     


    anlıyorum.
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    cemnet
    cemnet's avatar
    Kayıt Tarihi: 18/Eylül/2007
    Erkek

    @buzukatak  hocam bu sorgu çalıştı ama gerçekten çok tatsız :) MSSQL ile çalışıyorum @ozgunlu hocam o yüzden çalışmadı senin gönderdiğin link bende 

    Bi çözüm vardır herhalde 

  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    select * from daki yıldızı kaldırıp kolon adlarını yazsan ve id yi yazmazsan bak bakalım neye göre sıralıyor 


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    cemnet
    cemnet's avatar
    Kayıt Tarihi: 18/Eylül/2007
    Erkek

    yok hocam değişen bişey olmadı. 

    Ben sorunumu rank sutunu ekleyerek çözdüm ama yine uzun yol oldu

Toplam Hit: 929 Toplam Mesaj: 8
t-sql order by