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

sql server 2008 - konstanta non-integer dalam ORDER BY Clause

Berikut adalah MSDN harus mengatakan tentang konstanta karakter yang dalam arti non-integer constant

1) Konstanta bukan bilangan bulat adalah ... konstanta yang bukan bilangan bulat.

Contoh:'string1' mewakili konstanta string

0x01 mewakili konstanta varbinary

{ts '2015-02-26 06:00:00'} mewakili konstanta datetime

1.23 mewakili konstanta numerik

2) Jadi tanda kutip tunggal digunakan untuk mendefinisikan konstanta string / konstanta string karakter tetapi SQL Server memungkinkan juga untuk menggunakan tanda kutip tunggal gunakan juga sebagai pembatas pengidentifikasi kolom:

SELECT ... expression AS 'Column1'
FROM ...

Dalam konteks ini jelas bahwa 'Column1' adalah pengidentifikasi kolom tetapi ketika digunakan dalam ORDER BY :ORDER BY 'Column1' itu menghasilkan kebingungan karena SQL Server tidak tahu apakah itu mewakili string literal (karakter string konstan) atau mewakili pengidentifikasi kolom / nama kolom.

3) SQL Server memungkinkan untuk menggunakan konstanta integer dalam ORDER BY sehingga SELECT ColA, ColB, ColC FROM ... ORDER BY 2 . Dalam hal ini 2 adalah indeks kolom ColB . Juga, jika Anda ingin mengurutkan berdasarkan ColB dan ColC anda bisa menggunakan ORDER BY 2, 3 . Penggunaan indeks kolom dianggap sebagai praktik yang buruk.

4) Dalam hal ini saya akan menggunakan

ORDER BY EMP_LAST_NAME + ', ' + EMP_FIRST_NAME



  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 memulihkan database dari MDF di SQL Server 2005?

  2. Bagaimana mengatasi Pernyataan tidak mengembalikan kesalahan set hasil?

  3. Jalankan prosedur tersimpan dari cmd.exe?

  4. Buat Tampilan Terikat Skema di SQL Server

  5. SQL Server 2008:menyalin isi semua tabel dari satu database ke database lain