2017-11-04 25 views
0

たとえば、私は3カラム、sidea,sidebおよびsidecを持っています。NULL値のMySQL生成カラム

CREATE TABLE triangle (
    sidea DOUBLE, 
    sideb DOUBLE, 
    sidec DOUBLE AS (sidea - sideb) 
); 

しかしsideaのために、セルの一部はNULL値が含まれています。そして、私がやっていることです。上記コードの結果はNULL-(some number)=(some number)です。

誰もがsideaまたはsideb内のセルのいずれかがNULLが含まれている場合sidecNULLになるようにする方法を知っていますか?

ありがとうございます。次のようにあなたが何かにあなたのCREATE TABLEスクリプトを変更することができ

+0

問題を再現できません。[db-fiddle](https://www.db-fiddle.com/f/rgMHxn7uLyjBv1RFxzrLKb/0)を参照してください。 – wchiquito

+0

あなたはMySQLコマンドラインからテストを実行できますか? – wchiquito

+0

こんにちはwchiquito、私はちょうど、あなたのコードを使用する場合、ワークベンチは、画像としてNULLを表示されます。私のデータでは、NULLは編集可能な文字列として表示されます。その列のデータ型はDECIMAL(12,2)です。私はNULLが文字列として解釈されると思いますか?それは空白のセルを持つcsvファイルでした。私が行ったことは、空のセルに「NULL」を入力してデータベースに入力するためにExcelを使用することです。 – eagle

答えて

0

3列目にはそう最終的にあなたにTABLEスクリプトの変更を作成するには、このCASE WHEN sidea IS Null OR sideb IS Null THEN Null ELSE (sidea-sideb)

など、あなたがチェックをしたいかもしれません

CREATE TABLE triangle (
sidea DOUBLE, 
sideb DOUBLE, 
sidec DOUBLE AS (CASE WHEN sidea IS Null OR sideb IS Null THEN Null ELSE (sidea-sideb) END) 
); 

CASE文はあなたが(すなわちsidea OR列の値のいずれかの場合には、値NULLを割り当てることができます0がNULLの場合はsidecに値NULLが割り当てられます)。

希望すると便利です。

関連する問題