Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

ms sql query pada hitungan kemunculan kata-kata di kolom teks

Anda dapat membuat fungsi bernilai tabel untuk mengurai kata dan menggabungkannya ke kueri Anda terhadap qQuestion. Dalam skema Anda, saya sarankan menggunakan varchar(8000) atau varchar(max) bukannya text . Sementara itu, yang berikut ini akan membantu Anda memulai:

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. kueri SQL; horisontal ke vertikal

  2. Pemindaian Mundur Indeks SQL Server:Pemahaman dan Penyetelan Kinerja

  3. Impor Otomatis banyak file .txt ke tabel server sql

  4. Sementara loop di SQL Server 2008 iterasi melalui rentang tanggal dan kemudian INSERT

  5. Memuat file dll di dalam proyek Java Eclipse