SAS PROC SQL VALIDATE - PullRequest
       19

SAS PROC SQL VALIDATE

0 голосов
/ 25 ноября 2018

Интересно, могу ли я задать вопрос в терминах «PROC SQL VALIDATE» следующим образом:

Какое утверждение о следующем запросе PROC SQL является «ложным»?

    proc sql;
validate
select name label="Country",
rate label="Literacy Rate"
from world.literacy 
where "Asia" =
(select continent 
from world.continents
where literacy.name=
continents.country)
order by 2;

IИнтересно, почему первые параметры ниже не являются «ложными»?

 (a) The query syntax is not valid. 

 (b) The outer query must pass values to the subquery 
    before the subquery can return values to the outer 
    query

(c) PROC SQL will not execute this query when it is
    submitted   

(d) After the query is submitted, the SAS log will 
    indicate whether the query has valid syntax

Ответ: (d) Мне было интересно, почему синтаксис запроса недействителен?

Спасибо большое !!

1 Ответ

0 голосов
/ 25 ноября 2018

Отправленный вами запрос имеет подзапрос correlated (from world.continents).Этот подзапрос не может быть оценен независимо, но на самом деле зависит от значений, переданных ему внешним запросом (world.literacy).

Позвольте мне объяснить каждый из 4 вариантов:

(a) The query syntax is not valid. - False

Нет, это абсолютно верное утверждение, где у нас есть внешний запрос и подзапрос.

(b) The outer query must pass values to the subquery before the 
    subquery can return values to the outer query - True

Как уже упоминалось сверху, это то, что на самом деле происходит.

(c) PROC SQL will not execute this query when it is submitted - True

Как видно из doumentation , оператор validate проверяет только точность синтаксиса и семантики выражения запроса без выполнения выражения.

(d) After the query is submitted, the SAS log will 
    indicate whether the query has valid syntax - True

То же самое документация также упоминает, что оператор validate записывает сообщение в журнал SAS, в котором говорится, что запрос действителен.Если есть ошибки, validate записывает сообщения об ошибках в журнал SAS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...