---
layout: global
title: NOT_ALLOWED_IN_FROM error class
displayTitle: NOT_ALLOWED_IN_FROM error class
license: |
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
---

<!--
  DO NOT EDIT THIS FILE.
  It was generated automatically by `org.apache.spark.SparkThrowableSuite`.
-->

[SQLSTATE: 42601](sql-error-conditions-sqlstates.html#class-42-syntax-error-or-access-rule-violation)

Not allowed in the FROM clause:

This error class has the following derived error classes:

## LATERAL_WITH_PIVOT

LATERAL together with PIVOT.

## LATERAL_WITH_UNPIVOT

LATERAL together with UNPIVOT.

## UNPIVOT_WITH_PIVOT

UNPIVOT together with PIVOT.


