Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Appliquer comme sur toutes les colonnes sans spécifier tous les noms de colonne ?

Généralement - ce n'est pas possible de manière raisonnable (sans creuser dans les métadonnées de la base de données ), mais si vous connaissez les noms des colonnes, vous pouvez utiliser une astuce comme celle-ci :

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

OU

si vous recherchez des mots - utilisez les fonctionnalités FTS, car la requête supérieure est un tueur de performances