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

Pencarian Teks Lengkap SQL Server - Buat satu kolom yang dihitung

Anda dapat menggunakan gabungan untuk meminta kecocokan di alamat dan nama orang.

SELECT
   (keyTblSp.RANK * 3) AS [Rank],
    sp.*
FROM Employee sp    
    INNER JOIN 
        CONTAINSTABLE(Employee, *, 'John OR Hamburg', 1000) AS keyTblSp
        ON sp.EmployeeId = keyTblSp.[KEY]    
join
(
    SELECT
       (keyTbl.RANK * 2) AS [Rank],
        sp.*
    FROM Employee sp    
    LEFT OUTER JOIN [Address] addr ON addr.EmployeeId = sp.EmployeeId 
    INNER JOIN 
        CONTAINSTABLE([Address], *, 'John OR Hamburg', 1000) AS keyTbl
        ON addr.AddressId = keyTbl.[KEY]
UNION ALL
    SELECT
       (keyTbl.RANK * 2) AS [Rank],
        sp.*
    FROM Employee sp    
    LEFT OUTER JOIN [Address] addr ON addr.EmployeeId = sp.EmployeeId 
    LEFT OUTER JOIN [City] cty ON cty.CityId = addr.CityId
    INNER JOIN 
        CONTAINSTABLE([City], *, 'John OR Hamburg', 1000) AS keyTbl
        ON cty.CityId = keyTbl.[KEY]  
) addr_matches
on addr_matches.EmployeeId = sp.EmployeeId

yang saya pikir akan memberi Anda hasil yang Anda tentukan, tentu saja, ini membutuhkan nama dan istilah pencarian alamat untuk pencarian untuk mengembalikan hasil apa pun. Anda tidak menentukan apa yang terjadi jika seseorang hanya mencari 'John', jika Anda akan selalu mendapatkan nama dan alamat, saya pikir di atas akan berfungsi dengan baik.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Script Cepat yang Mengembalikan Semua Properti dari SERVERPROPERTY() di SQL Server 2017/2019

  2. Bagaimana cara membuat log kesalahan atau log kesalahan khusus dalam Paket SSIS?

  3. Karakter Escape di SQL Server

  4. Deteksi Interval Anomali dengan SQL

  5. Menggunakan SqlDependency dengan Antrian bernama