sql >> Database >  >> RDS >> Sqlserver

Query om gemeenschappelijke woorden tussen twee strings te krijgen

De titel van je vraag zegt MSQL, dus ik beschouw je vraag als een Sql Server-vraag.

  1. Splitsfunctie

Afhankelijk van de SQL Server-versie/Serverconfiguratie, hebt u een splitfunctie nodig die een string op een scheidingsteken naar keuze kan splitsen. Hier is zo'n functie.

CREATE FUNCTION [dbo].[fnSplit](@data NVARCHAR(MAX), @delimiter NVARCHAR(5))
RETURNS @t TABLE (rowNum int IDENTITY(1,1), data NVARCHAR(max), descriptor varchar(255) NULL)
AS
BEGIN

    DECLARE @textXML XML;
    SELECT    @textXML = CAST('<d>' + REPLACE(@data, @delimiter, '</d><d>') + '</d>' AS XML);

    INSERT INTO @t(data)
    SELECT  RTRIM(LTRIM(T.split.value('.', 'nvarchar(max)'))) AS data
    FROM    @textXML.nodes('/d') T(split)

    RETURN
END
  1. Zoek naar veelvoorkomende woorden met behulp van de split-functie (er zijn nogal wat manieren om dit te doen, hier is er een). SELECT sentence1.data FROM dbo.fnSplit('This site is very helpful',' ') sentence1 INNER JOIN dbo.fnSplit('I need a helpful site',' ') sentence2 ON sentence1.data = sentence2.data



  1. SQL:VERWIJDER gegevens uit zelfverwijzende tabel in specifieke volgorde

  2. Waarom werkt de implementatie van ODP.NET 11 xcopy niet op een machine waarop Oracle DB 10 is geïnstalleerd?

  3. Kan niet converteren naar interne representatie

  4. mysql:impliciete transactieverplichtingen omzeilen?