Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie auf alle Spalten anwenden, ohne alle Spaltennamen anzugeben?

Im Allgemeinen - es ist auf vernünftige Weise nicht möglich (ohne in DB-Metadaten zu graben ), aber wenn Sie die Namen der Spalten kennen, können Sie einen Trick wie diesen verwenden:

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%'

ODER

Wenn Sie nach Wörtern suchen, verwenden Sie die FTS-Funktionen, da die obere Abfrage ein Leistungskiller ist