2017-03-21 12 views
0

に、私はこのrequetsを持っている:ISNULL(値、0)WHERE句のMYSQL

SELECT sc.no, scl.quantite, scl.description, scl.poids, scl.prix, sl_ref.refsl, sl_ref.codetva, sl_ref.tauxtva, sl_ref.compte 
FROM shop_commande 
AS sc, shop_commande_ligne AS scl, selectline_ref AS sl_ref 
WHERE sc.id = scl.shop_commande_id 
AND sl_ref.refshop = ISNULL(scl.shop_article_id, 0) 
AND sc.id NOT IN (SELECT id_command FROM selectline_flag) 

は時々、にNULL値がある、をsl_s​​hop_article_id。

sl_ref.refshop = scl.shop_article_id 

scl.shop_article_idがNULLの場合でも動作することができます:私が欲しいのはその句が0で、それを交換することです。ネイティブ関数の呼び出しで誤ったパラメータ数「ISNULL」

私はどのように使用することができます -

1582:私はISNULL関数を使用しようとしたが、それは要求が間違っになり、私はそこにエラーが出ることを行うために、それ ?

答えて

1

IFNULL()機能を使用しようとしていると思います。 ISNULLIFNULLに変更した場合は、クエリを修正する必要があります。

私はあなたがさらに一歩進み、COALESCE()はSQL標準の一部(とIFNULL()ではない)であることから、COALESCE()代わりのIFNULL()を使用することをお勧め。

あなたは(ISNULL `の違いを見ることができます
SELECT sc.no, scl.quantite, scl.description, scl.poids, 
scl.prix, sl_ref.refsl, sl_ref.codetva, sl_ref.tauxtva, sl_ref.compte 
FROM shop_commande 
AS sc, shop_commande_ligne AS scl, selectline_ref AS sl_ref 
WHERE sc.id = scl.shop_commande_id 
AND sl_ref.refshop = COALESCE(scl.shop_article_id, 0) 
AND sc.id NOT IN (SELECT id_command FROM selectline_flag) 
+0

本当にうまくいって、今度はCOALESCEについてはしなかったので、ありがとう! – Maloz

2
SELECT 
    sc.no 
    , scl.quantite 
    , scl.description 
    , scl.poids 
    , scl.prix 
    , sl_ref.refsl 
    , sl_ref.codetva 
    , sl_ref.tauxtva 
    , sl_ref.compte 
FROM shop_commande 
AS sc, shop_commande_ligne AS scl, selectline_ref AS sl_ref 
WHERE sc.id = scl.shop_commande_id 
AND sl_ref.refshop = IFNULL(scl.shop_article_id, 0) 
AND sc.id NOT IN (SELECT id_command FROM selectline_flag) 
+0

)'と 'IFNULL()'ここでは機能https://www.w3schools.com/sql/sql_isnull.asp –

+0

@JuanCarlosOropezaおかげで..役立ちリンク用 – scaisEdge

+0

感謝リンクとクイックアンサーのために! IkeがCOALESCEがSQL標準の一部であると述べたので、私は彼の答えを使用しますが、あなたもうまくいきます! – Maloz

0
SELECT 
    sc.no, 
    scl.quantite, 
    scl.description, 
    scl.poids, 
    scl.prix, 
    sl_ref.refsl, 
    sl_ref.codetva, 
    sl_ref.tauxtva, 
    sl_ref.compte, 
    ISNULL(scl.shop_article_id, 0) AS article_id 
FROM shop_commande 
AS sc, shop_commande_ligne AS scl, selectline_ref AS sl_ref 
WHERE sc.id = scl.shop_commande_id 
AND sl_ref.refshop = article_id 
AND sc.id NOT IN (SELECT id_command FROM selectline_flag) 

だけにISNULL(scl.shop_article_id、0)SELECTへのarticle_id ASと sl_ref.refshop =のarticle_idを追加フィールドとして、それを選択し、それを

をチェックthe WHERE