ルックアップテーブルに何かがある場合に動作する次のクエリがあります。しかし、 "z.a"が何も等しくなければ、INSERTは失敗します。これはなぜでしょうか?ヌル時のルックアップ付きMySQL INSERT
INSERT INTO dataTable(
a,
b,
c,
d,
e,
f,
g,
h,
i,
j,
k,
l,
m,
n,
o,
p
)SELECT
'000003',
COALESCE(z.Registration, 'REG6'),
'PFTEST',
'1',
'1',
'37000.0',
'148.0',
'439.8',
'1312475688',
'0',
'54',
COALESCE(z.TypeCode, 'A555'),
'',
'1173',
'0',
'nJ'
FROM
LookupTable z
WHERE
z.a = '000003'
目的はデータが既に存在することですが、そこに何かがある場合にルックアップテーブルの値をオーバーライドしたいので、Coalesceを使用します –
それ自体で選択クエリを実行してみてください。何も返しません。あなたが何かを返す形式にマッサージするまで、挿入クエリは基本的に役に立たないです。 –
まあ私はクエリが何も返さないことを知っています、これは大きなループの一部です、私はこれを発見しました!これは値があるのに、値がないときに "A555"のような他の値を使用したい場合に機能します。 –