SELECT CODE * STATUS_CODE WHERE CODE IN (.....);
上面的SQL是嵌入在insert
语句中的子查询,用于确定列CLOSE_CODE
到' Y' (如果查询返回)或' N' (如果查询没有返回)。
如何在插入语句中添加类似IF ELSE
条件的查询?
INSERT INTO CODE_REVIEWS (CLOSE_CODE)
VALUES (....)
答案 0 :(得分:0)
您可以使用NVL()
执行此操作。重写查询,以便它返回' Y'如果有记录。从'Y'
中选择DUAL
,然后使用EXISTS
。如果不存在此类行,则子查询的结果将为NULL
,NVL()
会将NULL
转换为'N'
。
NVL((SELECT 'Y'
FROM DUAL
WHERE EXISTS (SELECT *
FROM STATUS_CODE
WHERE CODE IN (....))),
'N')
更详细的版本,也适用于许多其他DBMS,可以使用CASE
并再次使用EXISTS
。 WHEN
这样的行存在,'Y'
将被返回,ELSE
'N'
。
CASE
WHEN EXISTS (SELECT *
FROM STATUS_CODE
WHERE CODE IN (...))
THEN 'Y'
ELSE
'N'
END