ďťż
 
SQL - jak sformułować takie zapytanie: ďťż
 
SQL - jak sformułować takie zapytanie:
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

SQL - jak sformułować takie zapytanie:



Pawel - 13-11-2006 00:44
SQL - jak sformułować takie zapytanie:
  Dla znanej liczby, wśród kolumn których nazwy są określone liczbami
rosnącymi (to znaczy każda następna kolumna jest nazwana liczbą
całkowitą większą od poprzedniej) wybrać tą kolumnę której nazwa jest
liczbą większą od tej znanej liczby .. przy czym kolumna wczesniejsz
jest liczbą mniejszą.

Słownie bardzo źle mi się to opisuje .. dlatego googla nie wiedzialem
jak zapytać

na wszelki wypadek obrazek przedstawiający część tabeli:
http://img209.imageshack.us/img209/9763/tabelapg0.jpg (91kB)
Konkretnie chodzi mi np aby dla znanej liczby np 40 SQL wybral kolumne o
nazwie 48 .. a dokladniej jeszcze wartość poniższą dla pewnego stringa
który występuje w każdym wierszu (na obrazku niewidoczne)





Paweł Matejski - 13-11-2006 00:44

  Pawel wrote:
> Dla znanej liczby, wśród kolumn których nazwy są określone liczbami
> rosnącymi (to znaczy każda następna kolumna jest nazwana liczbą
> całkowitą większą od poprzedniej) wybrać tą kolumnę której nazwa jest
> liczbą większą od tej znanej liczby .. przy czym kolumna wczesniejsz
> jest liczbą mniejszą.
>
> Słownie bardzo źle mi się to opisuje .. dlatego googla nie wiedzialem
> jak zapytać
>
> na wszelki wypadek obrazek przedstawiający część tabeli:
> http://img209.imageshack.us/img209/9763/tabelapg0.jpg (91kB)
> Konkretnie chodzi mi np aby dla znanej liczby np 40 SQL wybral kolumne o
> nazwie 48 .. a dokladniej jeszcze wartość poniższą dla pewnego stringa
> który występuje w każdym wierszu (na obrazku niewidoczne)

SQL jest od wybierania wierszy na podstawie wartości kolumn, nie ich nazw.

--
P.M.




Pawel - 13-11-2006 00:44

  Paweł Matejski wrote:
>
> SQL jest od wybierania wierszy na podstawie wartości kolumn, nie ich nazw.
>

Przyznam, że nie jestem doświadczonym "programistą" SQL .. czy to znaczy
ze w tym przypadku pozostaje przebudowanie tabeli w jakiś inny sposób?

Ale skoro istnieja tabela bazy danych .. i ja ją logicznie potrafię w
głowie "obrobić" to SQL nie będzie w stanie ?? ;)




mojeza - 13-11-2006 00:44

 
Pawel wrote:
> Paweł Matejski wrote:
> >
> > SQL jest od wybierania wierszy na podstawie wartości kolumn, nie ich nazw.
> >
>
> Przyznam, że nie jestem doświadczonym "programistą" SQL .. czy to znaczy
> ze w tym przypadku pozostaje przebudowanie tabeli w jakiś inny sposób?
>
> Ale skoro istnieja tabela bazy danych .. i ja ją logicznie potrafię w
> głowie "obrobić" to SQL nie będzie w stanie ?? ;)

Nie podajesz jakiej bazy uzywasz, np. w MS SQL Server mozna to zrobic
tak:

USE Northwind

--SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='Orders'

DECLARE @ColOrdPos int
DECLARE @ColName varchar(256)
DECLARE @Query varchar(4000)

SELECT @ColOrdPos = ORDINAL_POSITION + 1
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME='Orders' AND COLUMN_NAME = 'ShipCountry'
ORDER BY ORDINAL_POSITION

SELECT @ColName = COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME='Orders' AND ORDINAL_POSITION = @ColOrdPos

--SELECT @ColName

IF @ColName IS NOT NULL
BEGIN
SET @Query = 'SELECT ShipCity, ' + @ColName + ' FROM Orders WHERE
ShipCity = ''Rio de Janeiro'''
EXEC(@Query)
END
ELSE
SELECT NULL, NULL





Maseł - 13-11-2006 00:44

  mojeza wrote:
> Pawel wrote:
>> Paweł Matejski wrote:
>>> SQL jest od wybierania wierszy na podstawie wartości kolumn, nie ich nazw.
>>>
>> Przyznam, że nie jestem doświadczonym "programistą" SQL .. czy to znaczy
>> ze w tym przypadku pozostaje przebudowanie tabeli w jakiś inny sposób?
>>
>> Ale skoro istnieja tabela bazy danych .. i ja ją logicznie potrafię w
>> głowie "obrobić" to SQL nie będzie w stanie ?? ;)
>
> Nie podajesz jakiej bazy uzywasz, np. w MS SQL Server mozna to zrobic
> tak:
>
> USE Northwind
[...]

A w Oracle to bym widzial zapytanie do slownika (perspektywy:
User_tables, user_tab_columns), troche PL/SQLa i dynamiczny natywny SQL.

szkielet wygladalby tak

-------
function zakrecone_zapytanie( numerek_do_wykonania in number)
--tu bym dodal, ze jest pipelinowa i tabelaryczna, a co mi tam

begin

select min(column_name) into fajny_numerek from user_tab_columns
where to_number(column_name) > numerek_do_wykonania and table_name =
'DZIWNA_TABELKA';

Execute immediate 'select ' || fajny_numerek || ' from dziwna_tabelka';

no_i_tu_bym_zwrocil_te_wiersze;

end;
--------

Pomijajac fakt, ze ta 'Dziwna_tabelka' to bym jednak inaczej zamodelowal...

Pozdro

Maseł
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    jak to =?ISO-8859-2?Q?zrobi=E6=2E=2E=2E=3F_TSQL_sql_server?==?ISO-8859-2?Q?_?= Jak =?windows-1250?Q?pobra=E6_szacowan=B9_wielko=9C=E6_zbiory_wy nikowego_w_MS?==?windows-1250?Q?_SQL_2005=3F?= =?iso-8859-2?Q?=5BMS_SQL=5D_Czy_mo=BFna_wywo=B3a=E6_funkcje_t ylko_raz_dla?==?iso-8859-2?Q?_ca=B3ego_zbioru_=BCr=F3d=B3owego=3F?= [MSSQL] =?ISO-8859-2?Q?zgodno=B6ci_z_licencjami_Microsoft_?==?ISO-8859-2?Q?SQL_Server?= =?ISO-8859-2?Q?k=B3opot_z_uruchomieniem_MY_SQL_dla_C?==?ISO-8859-2?Q?MS_i_CRM_na_Fedora_Core_3?= Oracle PL/SQL Wstawianie =?ISO-8859-2?Q?wynik=F3w_kolekcji_d?==?ISO-8859-2?Q?o_tabeli?= [MSSQL] ACCESS - SQL =?ISO-8859-2?Q?B=B3ad_w_konwersji_lic?==?ISO-8859-2?Q?zb?= [Oracle PL/SQL] Cursor i zapis =?ISO-8859-2?Q?rekord=F3w_do_?==?ISO-8859-2?Q?kolejnych_plik=F3w?= =?iso-8859-2?Q?=5BMySQL=5D_Co_minimalnie_potrzebne_zeby_mie=E 6_klienta_My?==?iso-8859-2?Q?SQL_na_Linuxie=3F?= [newbie] MS SQL - praca =?ISO-8859-2?Q?jednocze=B6nie_na_2_?==?ISO-8859-2?Q?bazach_=28linkowanie_=3F=29?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • lunadance.htw.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com