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

एसक्यूएल-सर्वर में उच्चारण और सभी वर्ण <> a..z कैसे निकालें?

इसे प्राप्त करने का सबसे अच्छा तरीका बहुत ही सरल और कुशल है:

SELECT 'àéêöhello!' Collate SQL_Latin1_General_CP1253_CI_AI

जो 'aeeohello!' आउटपुट करता है।

स्ट्रिंग यूनिकोड नहीं होनी चाहिए। यदि आपके पास एक nvarchar है तो बस कोलाट का उपयोग करने से पहले इसे varchar में डाल दें।

यहां एक फ़ंक्शन है जो ओपी की जरूरतों का जवाब देता है:

create function [dbo].[RemoveExtraChars] ( @p_OriginalString varchar(50) )
returns varchar(50) as
begin

  declare @i int = 1;  -- must start from 1, as SubString is 1-based
  declare @OriginalString varchar(100) = @p_OriginalString Collate SQL_Latin1_General_CP1253_CI_AI;
  declare @ModifiedString varchar(100) = '';

  while @i <= Len(@OriginalString)
  begin
    if SubString(@OriginalString, @i, 1) like '[a-Z]'
    begin
      set @ModifiedString = @ModifiedString + SubString(@OriginalString, @i, 1);
    end
    set @i = @i + 1;
  end

  return @ModifiedString

end

फिर, कमांड:

select dbo.RemoveExtraChars('aèàç=.32s df')

आउटपुट

aeacsdf


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Source.id और target.id के बीच मैपिंग प्राप्त करने के लिए merge..output का उपयोग करना

  2. समूहीकरण के साथ कई पंक्तियों को एक पाठ स्ट्रिंग में संयोजित करें

  3. varchar से int . तक की संख्या वाले कॉलम का प्रकार बदलें

  4. SQL सर्वर में एक बाधा के साथ एक कॉलम कैसे छोड़ें

  5. SQL सर्वर में एक कॉलम का नाम बदलें (T-SQL)