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

पैरामीटर के साथ प्रक्रिया

आपके कौशल सेट के आधार पर ऐसा करने के 2 तरीके।

  1. आप एक SQL CLR फ़ंक्शन बना सकते हैं।

    [Microsoft.SqlServer.Server.SqlFunction(Name="fnToList", FillRowMethodName="FillRow", TableDefinition="ID NVARCHAR(1000)")]
    public static IEnumerable SqlArray(SqlString inputString, SqlString delimiter)
    {
        if (string.IsNullOrEmpty(delimiter.Value))
            return new string[1] { inputString.Value };
        return inputString.Value.Split(delimiter.Value.ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
    }
    
    public static void FillRow(object row, out SqlString str)
    {
        str = new SqlString((string)row);
    }
    

या...आप एक नियमित SQL फ़ंक्शन बना सकते हैं:

CREATE FUNCTION [dbo].[fnArray] ( @Str varchar(8000), @Delim varchar(1) = ' ' )
returns  @tmpTable table ( arrValue varchar(25))
as
begin
   declare @pos integer
   declare @lastpos integer
   declare @arrdata varchar(8000)
   declare @data varchar(25)

   set @arrdata = replace(replace(replace(replace(upper(@Str),@Delim,'|'),'-',''),'/','|'),'\','|')
   set @arrdata = @arrdata + '|'
   set @lastpos = 1
   set @pos = 0
   set @pos = charindex('|', @arrdata)
   while @pos <= len(@arrdata) and @pos <> 0
   begin
      set @data = substring(@arrdata, @lastpos, (@pos - @lastpos))
      if rtrim(ltrim(@data)) > ''
      begin
         if not exists( select top 1 arrValue from @tmpTable where arrValue = @data )
         begin   
            insert into @tmpTable ( arrValue ) values ( @data )
         end
      end
      set @lastpos = @pos + 1
      set @pos = charindex('|', @arrdata, @lastpos)
   end
   return 
end

फिर उपयोग करने के लिए:

SELECT * From Mydatabase Where Names in (select arrValue from dbo.fnArray(@Names, ','))



  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

  3. SQL सर्वर 2016 क्वेरी स्टोर GUI की खोज करना

  4. दो एसक्यूएल प्रश्नों के बीच घटाव

  5. केवल तभी सक्रिय होने के लिए ट्रिगर करें जब SQL सर्वर में कोई शर्त पूरी होती है