Zapytanie SQL

0

Jak wybrać z jakiejś tabeli wszystkie pola które zawierają np. litere t

SELECT * FROM JakasTabela WHERE * LIKE '%t%';

to mi nie działa

0
  1. Jaka baza
  2. WHERE * LIKE '%t%'; raczej nie ruszy. Musisz podać konkretne kolumny. Inaczej będą porównywane kolumny o typach liczbowych czy daty. Na nich taka operacja (bez jawnego rzutowania) na pewno się wysypie.
0
Koziołek napisał(a)
  1. Jaka baza

postgresql 8.3

0
... where kol1 like '%t%' or kol2 like '%t%' or ...
0

chodziło mi o coś bardziej uniwersalnego, ale chyba sie nie da

0

napisz sobie procedure ktora zwroci warunek where jako varchar

CREATE PROCEDURE(@TABLE sysname; @CONDITION VARCHAR)
BEGIN
  DECLARE @SQL VARCHAR(8000)
  SET @SQL = 
    'DECLARE COLS CURSOR FAST FORWARD FOR ' + 
    'SELECT name, xType FROM syscolumns WHERE id = OBJECT_ID(''' + @TABLE + '') '''

itd

a potem robisz sobie dodawanie kolejnych kolumn plus cast warunku ze wzgledu na typ kolumny

Z pamieci pisze wiec cos moze byc nie tak :)

Wynik takiej procedury stworzy Ci warunek postaci col1 = condition OR col2 = condition ...

0

@crowa: autor mowil o postgresie, nie o TransactSQL.

@autor: ale podobna rzecz pewnie da sie tez zrobic w postgresie, PL/pgSQL jest dosc rozbudowany

1 użytkowników online, w tym zalogowanych: 0, gości: 1