Avatar
Petr Nymsa
Redaktor
Avatar
Petr Nymsa:

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
Člen
Avatar
Odpovídá na Petr Nymsa
Ori:

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

 
Nahoru Odpovědět 18.11.2014 11:49
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na Ori
Petr Nymsa:

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
Redaktor
Avatar
Odpovídá na Petr Nymsa
vodacek:

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):

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
Redaktor
Avatar
Odpovídá na Nikola Sterziková (PaNika)
Petr Nymsa:

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
kashpi
Redaktor
Avatar
kashpi:

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
Redaktor
Avatar
Yahkem:

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.