Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

SQL thay thế tất cả các NULL

Như nhiều người ở đây đã nói, cách tiếp cận tốt nhất là ISNULL (), tuy nhiên nếu bạn muốn một cách dễ dàng để tạo tất cả các ISNULL () đó, hãy sử dụng mã sau:

SELECT 'ISNULL([' + COLUMN_NAME + '], ' + 
  CASE 
    WHEN DATA_TYPE = 'bit' THEN '0'
    WHEN DATA_TYPE = 'int' THEN '0'
    WHEN DATA_TYPE = 'decimal' THEN '0'
    WHEN DATA_TYPE = 'date' THEN '''1/1/1900'''
    WHEN DATA_TYPE = 'datetime' THEN '''1/1/1900'''
    WHEN DATA_TYPE = 'uniqueidentifier' THEN '00000000-0000-0000-0000-000000000000'
    ELSE '''''' -- everything else get's an empty string
  END + ') AS [' + COLUMN_NAME + '],'
FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'TableName'

Điều này sẽ làm cho công việc tẻ nhạt trở nên dễ dàng hơn rất nhiều, sau đó bạn chỉ cần chỉnh sửa đầu ra để tính cho các loại trường khác nhau (int, varchar, ngày tháng, v.v.)

Chỉnh sửa:tính toán các kiểu dữ liệu khác nhau với các giá trị mặc định ..



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách tạo bảng từ kết quả truy vấn chọn trong SQL Server 2008

  2. Sử dụng một biến trong truy vấn OPENROWSET

  3. Kiểu dữ liệu SYSNAME trong SQL Server là gì?

  4. Công cụ khôi phục sao lưu SQL để sửa chữa bản sao lưu SQL bị hỏng - Đánh giá sản phẩm - Bài đăng của khách của Daniel Jones

  5. Cách đọc hàng cuối cùng với SQL Server