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

क्या विंडो फ़ंक्शंस (ओवर) के साथ उपयोगकर्ता परिभाषित समुच्चय (clr) का उपयोग करना संभव है?

आप सही हैं कि दस्तावेज़ीकरण में कुछ भी ढूंढना मुश्किल है। लेकिन कनेक्ट वेबसाइट की खोज करने पर, मैं इस रत्न को खोजने में कामयाब रहा:

<ब्लॉकक्वॉट>

आज, आप नियमित कुल कार्यों की तरह ही CLR समुच्चय का उपयोग OVER क्लॉज और PARTITION BY के साथ कर सकते हैं। एक बार हमारे पास विंडो फ़ंक्शंस के लिए समर्थन है...

जो माइक्रोसॉफ्ट की ओर से एक प्रतिक्रिया थी।

हालाँकि, कनेक्ट साइट पर खोज वही थी जो मैंने तब की थी जब मैं अपनी पुरानी मशीन के लिए एक नया डेटाबेस प्रोजेक्ट बनाने और इस समुच्चय को बनाने की प्रतीक्षा कर रहा था:

using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using System.IO;
using Microsoft.SqlServer.Server;

[Serializable]
[Microsoft.SqlServer.Server.SqlUserDefinedAggregate(Format.UserDefined,MaxByteSize = 2000)]
public struct SqlAggregate1 : IBinarySerialize
{
    private SqlString last;
    public void Init()
    {
        // Ignore
    }

    public void Accumulate(SqlString Value)
    {
        last = Value;
    }

    public void Merge (SqlAggregate1 Group)
    {
        // Ignore
    }

    public SqlString Terminate ()
    {
        // Put your code here
        return last;
    }

    public void Read(BinaryReader r)
    {
        last = new SqlString(r.ReadString());
    }

    public void Write(BinaryWriter w)
    {
        w.Write(last.ToString());
    }
}

और फिर इस स्क्रिप्ट को चलाएँ:

select dbo.SqlAggregate1(Column2) OVER (PARTITION BY Column1)
from (select 1,'abc' union all select 1,'def' union all
      select 2,'ghi' union all select 2,'jkl') as t(Column1,Column2)

जो उत्पादन करता है:

------------
abc
abc
ghi
ghi

जो कहने का एक लंबा रास्ता है - आप केवल कोशिश करके . द्वारा आसानी से अपने लिए उत्तर खोज सकते थे यह।




  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. SQL सर्वर (T-SQL) में सर्वर नाम वापस करने के 2 तरीके

  3. बेहतर स्क्रिप्ट जो SQL सर्वर में SERVERPROPERTY () से सभी गुण लौटाती है

  4. एंटिटी फ्रेमवर्क 6 ट्रांजेक्शन रोलबैक

  5. SQL सर्वर कैसे स्थापित करें