조회 테이블에 내용이있을 때 작동하는 다음 조회가 있습니다. 그러나 "z.a"가 아무 것도 아닌 경우 INSERT가 실패합니다. 왜 이럴 수 있니?null 일 때 조회가있는 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'
글쎄 그 목적은 데이터가 이미 있지만 거기에 무언가가 있다면 Lookup 테이블의 값을 덮어 쓰고 싶습니다. 따라서 Coalesce를 사용합니다 –
그 자체로 선택 쿼리를 실행 해 봅니다. 아무것도 돌려주지 않을 것이다. 당신이 그것을 반환하는 형식으로 그것을 마사지 할 수있을 때까지, 삽입 쿼리는 기본적으로 쓸모가 없다. –
글쎄, 쿼리가 아무것도 반환하지 않는다는 것을 알고 있습니다. 이것은 더 큰 루프의 일부이며 방금 이것을 발견했습니다! 이것은 값이있을 때 작동하지만 값이 없으면 "A555"와 같은 다른 값을 사용하려고합니다. –