Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Petr Nymsa
Tvůrce
Avatar
Petr Nymsa:18.11.2014 11:14

Ahoj,
už delší dobu bojuju s následujícím SQL

SELECT IFNULL(value,'') FROM `db-alaskanma`.jos_jf_content WHERE reference_id = 4 AND
language_id = 1 AND reference_table='content' AND reference_field = 'introtext';

Snažím, aby pokud SELECT vrátí NULL, tak vrátí prázdný string. Následnou hodnotu vkládám do jiné tabulky, kde sloupec introtext nemůže být NULL... zkoušel jsem i COALESCE - také bez výsledku.

Kde dělám chybu? Nebo je nějaké lepší řešení?

Odpovědět
18.11.2014 11:14
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Ori I
Člen
Avatar
Odpovídá na Petr Nymsa
Ori I:18.11.2014 11:49

z akého dôvodu potrebuješ string namiesto NULL ?

 
Nahoru Odpovědět
18.11.2014 11:49
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na Ori I
Petr Nymsa:18.11.2014 11:51

Páč ze starého schématu překopírovávm data do nové schématu. A nové schéma u některých sloupců nepovoluje NULL, kdežo ve starém schématu to tak bylo. Tak proto chci, pokud SELECT vrátí NULL to překonvertovat na prázdný string

Nahoru Odpovědět
18.11.2014 11:51
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
vodacek
Tvůrce
Avatar
Odpovídá na Petr Nymsa
vodacek:18.11.2014 16:19

Oracle na to má funkci NVL, ale záleží co máš za server

 
Nahoru Odpovědět
18.11.2014 16:19
Avatar
Odpovídá na Petr Nymsa
Nikola Sterziková (PaNika):18.11.2014 16:28

ISNULL i COALESCE by fungovat mělo...
Toto mě funguje bez problémů

INSERT INTO [dbo].[Test]
([NotNullString])
(SELECT ISNULL([Nazev], '') FROM [dbo].[Test2])

Spíš bude problém v něčem jiném..

 
Nahoru Odpovědět
18.11.2014 16:28
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na Nikola Sterziková (PaNika)
Petr Nymsa:18.11.2014 19:39

Mám MySQL a ano problém je jinde, bohužel netuším kde :@

Nahoru Odpovědět
18.11.2014 19:39
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
michalkasparec
Tvůrce
Avatar
michalkasparec:26.1.2015 9:02

dělám teda jen s MS-SQL a tam krásně funguje

SELECT ISNULL(value, '') FROM table

pripadne pretypovat

SELECT CAST(ISNULL(value, '') AS varchar(30)) FROM table

ale nem8m tucha jak to funguje na MySQL

 
Nahoru Odpovědět
26.1.2015 9:02
Avatar
Yahkem
Tvůrce
Avatar
Yahkem:30.1.2015 11:08

Já osobně používám Coalesce, protože to je standard

Coalesce(value, '')

a fungovat by to mělo vždy...
Psal jsi, že výsledek tohoto dotazu vkládáš do jiné tabulky, může to být také tím, že nedáváš alias tomu sloupci např.

SELECT IFNULL(value,'') AS col FROM ...

nedělal jsem s MySQL pořádně rok, ale nenapadá mě jediná věc co by mohla být blbě na použití IFNULL nebo COALESCE

 
Nahoru Odpovědět
30.1.2015 11:08
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.