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

ms sql truy vấn về số lần xuất hiện của các từ trong cột văn bản

Bạn có thể tạo một hàm có giá trị bảng để phân tích cú pháp các từ và nối nó vào truy vấn của bạn với qQuestion. Trong lược đồ của bạn, tôi khuyên bạn nên sử dụng varchar(8000) hoặc varchar(max) thay vì text . Trong khi đó, những điều sau sẽ giúp bạn bắt đầu:

create function [dbo].[fnParseWords](@str varchar(max), @delimiter varchar(30)='%[^a-zA-Z0-9\_]%')
returns @result table(word varchar(max))
begin
    if left(@delimiter,1)<>'%' set @delimiter='%'[email protected];
    if right(@delimiter,1)<>'%' set @delimiter+='%';
    set @str=rtrim(@str);
    declare @pi int=PATINDEX(@delimiter,@str);

    while @pi>0 begin
        insert into @result select LEFT(@str,@pi-1) where @pi>1;
        set @str=RIGHT(@str,len(@str)[email protected]);
        set @pi=PATINDEX(@delimiter,@str);
    end

    insert into @result select @str where LEN(@str)>0;
    return;
end
go

select COUNT(*)
from webqueries q
cross apply dbo.fnParseWords(cast(q.qQuestion as varchar(max)),default) pw
where pw.word not in ('and','is','a','the'/* plus whatever else you need to exclude */)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. So sánh các chuỗi được phân tách bằng dấu phẩy trong SQL

  2. Tính toán lợi nhuận được liên kết hình học trong SQL SERVER 2008

  3. Sắp xếp các cột cho xoay vòng động

  4. Giới thiệu Tính năng mới - Báo cáo đám mây Spotlight

  5. SQL:Làm thế nào để điền vào các ô trống với giá trị hàng trước đó?