El predicado WHERE admite subconsultas, incluidas IN, NOT IN, EXISTS, NOT EXISTS y subconsultas escalares. No se admiten los siguientes tipos de subconsulta:
Subconsultas anidadas, es decir, una subconsulta dentro de otra
Una subconsulta NOT IN dentro de un objeto OR, por ejemplo, a = 3 OR b NOT IN (SELECT c from t)
En la mayoría de los casos, se pueden reescribir las subconsultas NOT IN mediante NOT EXISTS. Se recomienda usar NOT EXISTS siempre que sea posible, ya que la instrucción DELETE con las subconsultas NOT IN puede ser lenta.
Ejemplos
> DELETE FROM events WHERE date < '2017-01-01'
> DELETE FROM all_events
WHERE session_time < (SELECT min(session_time) FROM good_events)
> DELETE FROM orders AS t1
WHERE EXISTS (SELECT oid FROM returned_orders WHERE t1.oid = oid)
> DELETE FROM events
WHERE category NOT IN (SELECT category FROM events2 WHERE date > '2001-01-01')
Obtenga información sobre cómo Azure Databricks controla los estados de error y proporciona mensajes, incluido el control de condiciones de error de Python y Scala.