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

Sortir Alfanumerik

Berikut tipnya:Setiap kali Anda mengalami masalah dengan pengurutan, tambahkan urutan berdasarkan item ke klausa pilihan Anda. ini akan memungkinkan Anda untuk melihat apakah yang Anda urutkan sebenarnya adalah yang ingin Anda urutkan:

SELECT Section,
        CASE WHEN PATINDEX('%[0-9]%',Section) > 1 THEN
          LEFT(Section,PATINDEX('%[0-9]%',Section)-1)
        ELSE 
          Section
        END As alphabetical_sort, -- alphabetical sort
        CASE WHEN PATINDEX('%[0-9]%',Section) > 1 THEN
          CAST(SUBSTRING(Section,PATINDEX('%[0-9]%',Section),LEN(Section)) as float)
        ELSE
          NULL
        END As Numeric_Sort
FROM dbo.Section
ORDER BY alphabetical_sort, Numeric_Sort

Setelah saya mengurutkan dengan benar, Yang harus saya lakukan adalah memindahkan pernyataan kasus ke urutan demi klausa:

SELECT Section
FROM dbo.Section
ORDER BY 
    CASE WHEN PATINDEX('%[0-9]%',Section) > 1 THEN
        LEFT(Section,PATINDEX('%[0-9]%',Section)-1)
    ELSE 
        Section
    END , -- Alphabetical sort
    CASE WHEN PATINDEX('%[0-9]%',Section) > 1 THEN
        CAST(SUBSTRING(Section,PATINDEX('%[0-9]%',Section),LEN(Section)) as float)
    ELSE
        NULL
    END  -- Numeric sort

Pada dasarnya, Anda memiliki 4 masalah utama:

  • Ekspresi pengurutan abjad Anda mengasumsikan bahwa setiap baris memiliki angka di dalamnya.
  • Ekspresi pengurutan abjad Anda berisi angka-angka serta teks.
  • Ekspresi pengurutan numerik Anda memiliki nilai numerik dan alfabet.
  • Karena artikel 3, Anda tidak dapat mentransmisikan ekspresi pengurutan numerik ke tipe numerik, dan inilah mengapa Anda akan mendapatkan pengurutan string.

Lihat biola sql ini



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ekspor data xml menggunakan Perintah BCP di SQL Server

  2. Di mana pemicu Server disimpan di SQL Server?

  3. Gabungkan PowerShell dan SQL Diagnostic Manager untuk mengotomatiskan pemantauan SQL Server

  4. Cara menggunakan Template di SQL Server Management Studio (SSMS) - Tutorial SQL Server / TSQL Bagian 16

  5. Impor kolom spreadsheet Excel ke database SQL Server