Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

हम SQL Server 2008 में सभी कॉलम नामों में ISNULL का उपयोग कैसे कर सकते हैं?

आप अलग-अलग कॉलम के लिए एक ही SQL स्टेटमेंट में कई बार ISNULL का उपयोग कर सकते हैं, लेकिन आपको इसे प्रत्येक कॉलम के लिए अलग से लिखना होगा:

SELECT
    ISNULL(ProductName, 'No Data') AS ProductName,
    ISNULL(CAST(UnitPrice AS NVARCHAR), 'No Data') AS UnitPrice, 
    ISNULL(CAST(UnitsInStock AS NVARCHAR), 'No Data') AS UnitsInStock,
    ISNULL(CAST(UnitsOnOrder AS NVARCHAR), 'No Data') AS UnitsOnOrder
FROM tbl

यदि आप एक गतिशील SQL क्वेरी बना रहे हैं, तो आप सैद्धांतिक रूप से तालिका में स्तंभों की एक सूची एकत्र कर सकते हैं और प्रत्येक पर ISNULL के साथ एक क्वेरी उत्पन्न कर सकते हैं। उदाहरण के लिए:

DECLARE @SQL nvarchar(max)

SET @SQL = 'SELECT '

SELECT @SQL = @SQL + 'ISNULL(CAST([' + sc.name + '] AS NVARCHAR), ''No Data'') AS [' + sc.name + '],'
FROM sys.objects so
INNER JOIN sys.columns sc ON sc.object_id = so.object_id
WHERE so.name = 'tbl'

-- Remove the trailing comma
SELECT @SQL = LEFT(@SQL, LEN(@SQL) - 1) + ' FROM tbl'

EXEC sp_sqlexec @SQL

टाइमस्टैम्प जैसे कुछ कॉलम प्रकारों को nvarchar में कनवर्ट करते समय इस कोड में समस्याएं होती हैं, लेकिन यह तकनीक को दिखाता है।

ध्यान दें कि यदि आपके पास कोई अन्य कॉलम है जिसे वापस किया जाना चाहिए यदि कोई मान शून्य है, तो आप COALESCE इस तरह की अभिव्यक्ति:

SELECT COALESCE(ProductName, P_Id) AS Product...


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर CRUD संचालन

  2. सशर्त अद्वितीय बाधा

  3. nvarchar संघटन / अनुक्रमणिका / nvarchar(अधिकतम) अकथनीय व्यवहार

  4. SQL सर्वर लेनदेन लॉग की मूल बातें

  5. SSMS 2019 (v18) के लिए एक्सटेंशन कैसे बनाएं