Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Migrasi SQL Server 2000 ke 2008 - ORDER BY Issue saat menggunakan DISTINCT

Anda dapat sedikit mengubah semantik dengan melakukan ini:

SELECT ZipCode FROM 
(
  SELECT DISTINCT ZipCode = LEFT(tz.Zipcode, 5)
    FROM dbo.TerritoryZip
) AS x
ORDER BY ZipCode;

Tidak benar-benar menyelesaikan masalah karena kueri lebih bertele-tele dan Anda masih tidak dapat menghindari menyentuhnya. Perbaikan yang Anda sarankan lebih baik menurut saya karena lebih eksplisit tentang apa yang sedang terjadi.

Bukan untuk kasar, tetapi jika Anda tidak berpikir Anda akan dapat "menemukan semua contoh jenis SQL ini" lalu bagaimana Anda mempercayai pengujian Anda sama sekali?

Saya akan menyarankan bahwa mempertahankan mode 2000 bukanlah jawaban yang optimal. Alasannya adalah ini dapat menyebabkan sintaks lain rusak (misalnya cara Anda memanggil fungsi manajemen dinamis - lihat ini Postingan blog Paul Randal dan komentar saya untuk itu), Anda juga berisiko mengabadikan kode yang harus diperbaiki (mis. *= gaya lama / =* gabungan yang valid dalam mode compat 2000, tetapi tidak akan valid saat Anda beralih dari 2008 R2 -> Denali, yang tidak mendukung 2000 compat).

Tidak ada setelan "ketat" tetapi Anda dapat memilih ATUR STRICT_CHECKS Erland Sommarskog; saran .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara mengatur variabel dari kueri SQL?

  2. pohon induk anak sql dengan urutan pengurutan

  3. simpan bahasa arab di database SQL

  4. Apakah ukuran yang digunakan dengan NVARCHAR penting?

  5. Perbandingan Tipe Data Tanggal &Waktu di SQL Server