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

SQL सर्वर - UNPIVOT का उपयोग करके NULL शामिल करें

NULLs को संरक्षित करने के लिए, क्रॉस जॉइन का उपयोग करें ... केस:

select a.ID, b.column_name
, column_value = 
    case b.column_name
      when 'col1' then a.col1
      when 'col2' then a.col2
      when 'col3' then a.col3
      when 'col4' then a.col4
    end
from (
  select ID, col1, col2, col3, col4 
  from table1
  ) a
cross join (
  select 'col1' union all
  select 'col2' union all
  select 'col3' union all
  select 'col4'
  ) b (column_name)

इसके बजाय:

select ID, column_name, column_value
From (
  select ID, col1, col2, col3, col4
  from table1
  ) a
unpivot (
  column_value FOR column_name IN (
    col1, col2, col3, col4)
  ) b

कॉलम मोड वाला टेक्स्ट एडिटर ऐसे प्रश्नों को लिखना आसान बनाता है। अल्ट्राएडिट में यह है, इसलिए Emacs करता है। Emacs में इसे आयताकार संपादन कहा जाता है।

आपको इसे 100 कॉलम के लिए स्क्रिप्ट करने की आवश्यकता हो सकती है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CASCADE DELETE को सक्षम करने के लिए मैं किसी तालिका को कैसे संपादित करूं?

  2. मैं एकाधिक कॉलम में डुप्लीकेट कैसे ढूंढूं?

  3. अधिक उन्नत क्वेरी चलाते समय ऑब्जेक्ट बंद होने पर ऑपरेशन की अनुमति नहीं है

  4. टेबल-वैल्यूड-फ़ंक्शन के अंदर सीटीई के लिए मैक्सरेकर्सन विकल्प कैसे सेट करें?

  5. जांचें कि क्या तालिका SQL सर्वर में मौजूद है