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

SQL Stored Procedure mencegah penulisan null

Saya masih sedikit bingung dengan pertanyaan Anda, tetapi ini seharusnya berfungsi seperti yang saya pahami. Alih-alih semua IF pernyataan, pertimbangkan untuk pindah ke satu CASE pernyataan, default nilainya ke 0. Kemudian tambahkan tanda centang jika nilainya bukan 0, untuk melakukan sesuatu.

DECLARE @Level int
DECLARE @Total int
DECLARE @NewPoint int

SET @Level = 61
SET @Total = 100

SELECT 
  @NewPoint = CASE
                WHEN @Level = 61 AND @Total < 482 THEN 10
                WHEN @Level = 62 AND @Total < 487 THEN 15
                WHEN @Level = 63 AND @Total < 492 THEN 20
                WHEN @Level = 64 AND @Total < 497 THEN 25
                WHEN @Level = 65 AND @Total < 502 THEN 30
                ELSE 0
              END

IF @NewPoint <> 0 
BEGIN
  SELECT 'DO SOMETHING'
END


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kueri berkinerja optimal untuk catatan terbaru untuk setiap N

  2. Bagaimana cara mengisi tanggal dan nilai yang hilang dalam data yang dipartisi?

  3. Bagaimana cara menemukan duplikat di beberapa kolom?

  4. Bagaimana cara memeriksa apakah objek DateTime tidak ditetapkan?

  5. Sembunyikan baris dengan semua nilai nol menggunakan Pivot Dinamis