Loading...
vancho avatar vancho 430 Точки

JAVA DB Fundametals: SAMPLE EXAM 11.10.2016 - Problems

Защо в judge не минава горната заявка, при която изхода е един и същ с долната заявка, която е на лектора. А трябва да гъдаем по какъв начин иска judge-a да му я подадеш! П.с. това не е единичен случай от SAMPLE EXAM-а.

SELECT c.customer_id,
              c.first_name,
              c.last_name,
              c.gender,
              ci.city_name
  FROM customers AS c
 INNER JOIN cities AS ci
    ON c.city_id = ci.city_id
 WHERE (c.last_name LIKE 'Bu%'
     OR c.first_name LIKE '%a')
   AND LENGTH(ci.city_name) >= 8;

 

SELECT c.customer_id,
               c.first_name,
               c.last_name,
               c.gender,
               ci.city_name
  FROM customers AS c
 INNER JOIN cities AS ci
     ON c.city_id = ci.city_id
 WHERE (LEFT(c.last_name, 2) = 'Bu'
     OR RIGHT(c.first_name, 1) = 'a')
    AND LENGTH(ci.city_name) > 7;

Тагове:
1
Module: Java DB 12/10/2016 15:59:16
RoYaL avatar RoYaL Trainer 6849 Точки

Може ли да кажеш и коя задача е (т.е. да видим условието). Защото аз на пръв поглед виждам огромна разлика между двете заявки. В едната се казва "Нещо булево ИЛИ нещо булево И нещо булево" а в другата "(Нещо булево ИЛИ нещо булево) И нещо булево". Изглежда ми като да не е въпрос на догадки, а по-скоро на логическа проверка.

0
12/10/2016 16:03:29
vancho avatar vancho 430 Точки

Sample Exam Bank -> Section 3. Querying -> 3. Customer City

LINK

1
12/10/2016 16:06:43
RoYaL avatar RoYaL Trainer 6849 Точки

Ясно, да. Ами така е по условие:

" all customers whose last name starts with ‘Bu’ or first name ends with ‘a’ ":

- Т.е. клиентите трябва да отговарят на едно от двете условия. Когато някой клиент отговаря на едно от двете условия, чак тогава трябва да отговаря И на трето:

" for those customers the length of the city name should at least 8 letters "

Т.е. логиката е

(започва с 'Bu' или завършва на 'a') И /ако първото в скобите е дало true/ градът му е с поне 8 букви

Ако ти няма скобите, лявата асоциативност ще даде:

започва с 'Bu' ИЛИ завършва на 'a' И градът му е с поне 8 букви

Съответно ако някой започва с 'Bu' без значение дали дясната част е невярна, то Вярно ИЛИ Невярно ще даде Вярно ;) Та query-то без скобите дава един допълнителен резултат - "Annie Burns от град Bromma" - както може да се видим, градът не е с 8 букви.

0
12/10/2016 16:13:49
vancho avatar vancho 430 Точки

Ами това не е ли същото:

WHERE (c.last_name LIKE 'Bu%'
     OR c.first_name LIKE '%a')
   AND LENGTH(ci.city_name) >= 8;

1
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.