sql >> Database teknologi >  >> RDS >> Sqlserver

Vil du anvende like over alle kolonner uden at angive alle kolonnenavne?

Generelt - det er ikke muligt på en rimelig måde (uden at grave i DB-metadata ), men hvis du kender navnene på kolonner, kan du bruge et trick som dette:

select 
    YourTable.*
FROM YourTable
JOIN
( 
    select 
      id, 
      ISNULL(column1,'')+ISNULL(Column2,'')+...+ISNULL(ColumnN,'') concatenated
      FROM YourTable
) T ON T.Id = YourTable.Id
where   t.concatenated like '%x%'

ELLER

hvis du søger efter ord - brug FTS-funktionerne, fordi den øverste forespørgsel er en performance killer



  1. Konverter 'datetime offset' til 'datetime' i SQL Server (T-SQL-eksempler)

  2. Oracle - opret et midlertidigt resultatsæt til brug i en forespørgsel

  3. Kan ikke indsætte Varchar2-data ved hjælp af lagret procedure med tabeltype som IN-parameter

  4. mysql:sløjfe over tabeller og ændre tabel tilføje indeks