<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Forum PostgreSQL - Czy można konwetować dane w locie do zapytania.]]></title>
	<link rel="self" href="http://forum.postgresql.org.pl/extern.php?action=feed&amp;tid=446&amp;type=atom"/>
	<updated>2010-05-26T12:57:55Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.postgresql.org.pl/viewtopic.php?id=446</id>
		<entry>
			<title type="html"><![CDATA[Odp: Czy można konwetować dane w locie do zapytania.]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=2064#p2064"/>
			<content type="html"><![CDATA[Wielkie dzięki,

widziałem właśnie stronę z funkcjami i stringami.
Nie wiem tylko dlaczego ubzdurało mi się że powinno się je stosować w ten sposób:

SELECT * FROM tabela WHERE nazwa = jakas_funkcja('jakis_opis');

Jeszcze raz wielkie dzięki za pomoc.

edit.
usunąłem jedną funkcję [replace], rozszerzyłem [translate]. Zapytanie wygląda:
SELECT * FROM tabela WHERE translate(lower(nazwa), 'ęóąśłżźćń- ', 'eoaslzzcn__') = 'jakis_opis']]></content>
			<author>
				<name><![CDATA[linx]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=1110</uri>
			</author>
			<updated>2010-05-26T12:57:55Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=2064#p2064</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Czy można konwetować dane w locie do zapytania.]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=2063#p2063"/>
			<content type="html"><![CDATA[[quote=linx]Witam,

potrzebuje przekonwertować dane w bazie w locie, mianowicie
mam tabele o strukturze id|nazwa - > przykładowy wpis -> 1|Jakiś opis
A więc wysyłam zapytanie SELECT * FROM tabela WHERE nazwa='jakis_opis' i chce aby wynikiem wyszła zawartość wiersza -> 1| Jakiś opis
(tj. zmiana dużych liter na małe, polskie znaki z ogonkami na takie bez ogonków, spacje na podkreślnik)
widzę to jako konwersję w locie ale dynamiczną, podejrzewam że zeżarło by to sporo pamięci ale to jest nie istotne.
Czy to co potrzebuje jest możliwe i da się to jakoś zrobić, czy jest to tylko moja wymyślona fanaberia niewykonywalna??

Pozdrawiam.[/quote]

tak na szybko:
SELECT * FROM tabela WHERE translate(replace(lower(nazwa),' ','_'),'ąźćżóńęłś','azczonels') = 'jakis_opis' 

zobacz:
[url]http://www.postgresql.org/docs/current/static/functions-string.html[/url] 

edit//
Mozesz dodac indeksowana kolumne do tabeli uaktualniana triggerem, ktora przekonwertuje nazwe na postac, jaka Ci bedzie odpowiadala do selecta, to przyspieszysz wyszukiwanie

Pozdrawiam]]></content>
			<author>
				<name><![CDATA[6nom]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=971</uri>
			</author>
			<updated>2010-05-26T12:15:33Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=2063#p2063</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Czy można konwetować dane w locie do zapytania.]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=2062#p2062"/>
			<content type="html"><![CDATA[Witam,

potrzebuje przekonwertować dane w bazie w locie, mianowicie
mam tabele o strukturze id|nazwa - > przykładowy wpis -> 1|Jakiś opis
A więc wysyłam zapytanie SELECT * FROM tabela WHERE nazwa='jakis_opis' i chce aby wynikiem wyszła zawartość wiersza -> 1| Jakiś opis
(tj. zmiana dużych liter na małe, polskie znaki z ogonkami na takie bez ogonków, spacje na podkreślnik)
widzę to jako konwersję w locie ale dynamiczną, podejrzewam że zeżarło by to sporo pamięci ale to jest nie istotne.
Czy to co potrzebuje jest możliwe i da się to jakoś zrobić, czy jest to tylko moja wymyślona fanaberia niewykonywalna??

Pozdrawiam.]]></content>
			<author>
				<name><![CDATA[linx]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=1110</uri>
			</author>
			<updated>2010-05-25T20:27:33Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=2062#p2062</id>
		</entry>
</feed>
