sql >> Databasteknik >  >> RDS >> Sqlserver

Fråga för att få vanliga ord mellan två strängar

Din frågetitel säger MSQL, så jag tar din fråga som en SQL Server-fråga.

  1. Dela funktion

Beroende på SQL Server-version/serverkonfiguration, behöver du en delad funktion som kan dela en sträng på en valfri avgränsare. Här är en sådan funktion.

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. Fråga efter vanliga ord med delad funktion (det finns en hel del sätt att göra detta, här är ett). 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. Flask-Sqlalchemy saknas BEGIN verkar orsaka osynkroniserade sessioner

  2. Varför är inte säkerhet på radnivå aktiverad för Postgres-vyer?

  3. Varför ger Delphi (Zeos) mig widestring-fält i SQLite när jag ber om osignerad big int?

  4. Pandas read sql heltal blev float