Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Truy vấn để lấy các từ chung giữa hai chuỗi

Tiêu đề câu hỏi của bạn cho biết là MSQL, vì vậy tôi đang coi câu hỏi của bạn là câu hỏi của Máy chủ Sql.

  1. Chức năng phân chia

Tùy thuộc vào phiên bản SQL Server / Cấu hình máy chủ, bạn sẽ cần một hàm phân tách có thể chia một chuỗi trên một dấu phân cách tùy chọn. Đây là một chức năng.

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. Truy vấn các từ thông dụng bằng hàm split (có khá nhiều cách để thực hiện việc này, đây là một cách). 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Truyền ký hiệu khoa học (từ varchar -> số) trong một chế độ xem

  2. SQL INSERT sp_cursor Error

  3. Cách SET ROWCOUNT hoạt động trong SQL Server

  4. Làm thế nào để lấy mức lương cao thứ n từ một bảng mà không cần sử dụng TOP và truy vấn phụ?

  5. Sử dụng kết quả SELECT làm tên COLUMN trong SELECT khác