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

एसक्यूएल - पंक्तियों की संख्या को संरक्षित करते हुए बार-बार पंक्तियों को शून्य मानों से बदलें

आप एक वर्ष के भीतर पंक्तियों की गणना करके ऐसा कर सकते हैं। फिर पहले को छोड़कर सभी अपडेट करें:

with toupdate as (
      select t.*, row_number() over (partition by [year] order by [date]) as seqnum
      from t
     )
update toupdate
    set [year] = NULL
    where seqnum > 1;

यदि आप इसे select . के रूप में चाहते हैं कथन:

with ts as (
      select t.*, row_number() over (partition by [year] order by [date]) as seqnum
      from t
     )
select [date],
       (case when seqnum = 1 then [year] end) as [year]
from ts;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. टी-एसक्यूएल एल्गोरिदम असुरक्षित एचटीएमएल अक्षरों को एचटीएमएल कैरेक्टर एंटिटी रेफरेंस के रूप में एन्कोड करने के लिए

  2. चयनित रिकॉर्ड के लिए सम्मिलित स्क्रिप्ट उत्पन्न करें?

  3. SQL तुलना और शून्य मानों के साथ समस्याएं

  4. एक कॉलम मान को कई कॉलम मानों में विभाजित करें

  5. संग्रहीत कार्यविधि द्वारा लौटाई गई पंक्तियों की संख्या की गणना करना