<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://training-course-material.com/index.php?action=history&amp;feed=atom&amp;title=MVEL_basic</id>
	<title>MVEL basic - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://training-course-material.com/index.php?action=history&amp;feed=atom&amp;title=MVEL_basic"/>
	<link rel="alternate" type="text/html" href="https://training-course-material.com/index.php?title=MVEL_basic&amp;action=history"/>
	<updated>2026-05-13T23:38:51Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://training-course-material.com/index.php?title=MVEL_basic&amp;diff=71292&amp;oldid=prev</id>
		<title>Fstachecki: /* Comments ⌘ */</title>
		<link rel="alternate" type="text/html" href="https://training-course-material.com/index.php?title=MVEL_basic&amp;diff=71292&amp;oldid=prev"/>
		<updated>2019-03-28T15:57:05Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Comments ⌘&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Cat|Drools Filip|050}}&lt;br /&gt;
&lt;br /&gt;
== Drools Expert - mvel - RHS - basic Training Materials ==&lt;br /&gt;
{{Can I use your material}}&lt;br /&gt;
&lt;br /&gt;
== Overview ⌘==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Facts used during course&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Emp&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 +------+----------+-----------+------+----------+---------+--------+&lt;br /&gt;
 | id   | name     | job       | mgr  | hiredate | sal     | deptno |&lt;br /&gt;
 +------+----------+-----------+------+----------+---------+--------+&lt;br /&gt;
 | 7839 | BUSH     | PRESIDENT | 0    | 1981     | 5000.00 | 10     |&lt;br /&gt;
 | 7698 | BLAIR    | MANAGER   | 7839 | 1981     | 2850.00 | 30     |&lt;br /&gt;
 | 7782 | MERKEL   | MANAGER   | 7839 | 1981     | 2450.00 | 10     |&lt;br /&gt;
 | 7566 | PUTIN    | MANAGER   | 7839 | 1981     | 2975.00 | 20     |&lt;br /&gt;
 | 7654 | CHIRACK  | SALESMAN  | 7698 | 1981     | 1250.00 | 30     |&lt;br /&gt;
 | 7499 | BAROSSO  | SALESMAN  | 7698 | 1981     | 1600.00 | 30     |&lt;br /&gt;
 | 7844 | GATES    | SALESMAN  | 7698 | 1981     | 1500.00 | 30     |&lt;br /&gt;
 | 7900 | BUFFETT  | CLERK     | 7698 | 1981     | 950.00  | 30     |&lt;br /&gt;
 | 7521 | WALTON   | SALESMAN  | 7698 | 1981     | 1250.00 | 30     |&lt;br /&gt;
 | 7902 | TOOSK    | ANALYST   | 7566 | 1981     | 3000.00 | 20     |&lt;br /&gt;
 | 7369 | THATCHER | CLERK     | 7902 | 1980     | 800.00  | 20     |&lt;br /&gt;
 | 7788 | CARNEGIE | ANALYST   | 7566 | 1982     | 3000.00 | 20     |&lt;br /&gt;
 | 7876 | FORD     | CLERK     | 7788 | 1983     | 1100.00 | 20     |&lt;br /&gt;
 | 7934 | ELISON   | CLERK     | 7782 | 1982     | 1300.00 | 10     |&lt;br /&gt;
 +------+----------+-----------+------+----------+---------+--------+&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Dept&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 +--------+------------+----------+&lt;br /&gt;
 | deptno | dname      | loc      |&lt;br /&gt;
 +--------+------------+----------+&lt;br /&gt;
 | 10     | ACCOUNTING | NEW YORK |&lt;br /&gt;
 | 20     | RESEARCH   | LONDON   |&lt;br /&gt;
 | 30     | SALES      | PARIS    |&lt;br /&gt;
 | 40     | OPERATIONS | BERLIN   |&lt;br /&gt;
 +--------+------------+----------+&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Salgrade&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 +-------+-------+-------+&lt;br /&gt;
 | grade | losal | hisal |&lt;br /&gt;
 +-------+-------+-------+&lt;br /&gt;
 | 1     | 700   | 1200  |&lt;br /&gt;
 | 2     | 1201  | 1400  |&lt;br /&gt;
 | 3     | 1401  | 2000  |&lt;br /&gt;
 | 4     | 2001  | 3000  |&lt;br /&gt;
 | 5     | 3001  | 9999  |&lt;br /&gt;
 +-------+-------+-------+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Comments ⌘===&lt;br /&gt;
Use double forward slash to comment a whole line&lt;br /&gt;
&lt;br /&gt;
 // This is commented line&lt;br /&gt;
&lt;br /&gt;
Use C langue comment notation (/* and */) to comment some text inside a line or a couple of lines.&lt;br /&gt;
&lt;br /&gt;
So please comment your answer to exercises, for example&lt;br /&gt;
 /**&lt;br /&gt;
  * Exercise 4&lt;br /&gt;
  */&lt;br /&gt;
 when &lt;br /&gt;
 	e : Emp()&lt;br /&gt;
 then&lt;br /&gt;
    ....&lt;br /&gt;
&lt;br /&gt;
== Filtering ==&lt;br /&gt;
&lt;br /&gt;
=== Filter by Fact Type ⌘===&lt;br /&gt;
Find all facts of &amp;#039;&amp;#039;Emp&amp;#039;&amp;#039; type&lt;br /&gt;
 when&lt;br /&gt;
 	e : Emp()&lt;br /&gt;
 then    &lt;br /&gt;
     System.out.println(&lt;br /&gt;
        e.id + &amp;quot; &amp;quot; + &lt;br /&gt;
        e.name + &amp;quot;\t&amp;quot; + &lt;br /&gt;
        e.job + &amp;quot;   \t&amp;quot; +&lt;br /&gt;
        e.mgr  + &amp;quot;\t&amp;quot; +&lt;br /&gt;
        e.hiredate + &amp;quot; &amp;quot; + &lt;br /&gt;
        e.sal + &amp;quot; &amp;quot; + &lt;br /&gt;
        e.deptno );&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
 7934 ELISON	CLERK   	7782	1982 1300 10&lt;br /&gt;
 7876 FORD	CLERK   	7788	1983 1100 20&lt;br /&gt;
 7788 CARNEGIE	ANALYST   	7566	1982 3000 20&lt;br /&gt;
 7369 THATCHER	CLERK   	7902	1980 800 20&lt;br /&gt;
 7902 TOOSK	ANALYST   	7566	1981 3000 20&lt;br /&gt;
 7521 WALTON	SALESMAN   	7698	1981 1250 30&lt;br /&gt;
 7900 BUFFETT	CLERK   	7698	1981 950 30&lt;br /&gt;
 7844 GATES	SALESMAN   	7698	1981 1500 30&lt;br /&gt;
 7499 BAROSSO	SALESMAN   	7698	1981 1600 30&lt;br /&gt;
 7654 CHIRACK	SALESMAN   	7698	1981 1250 30&lt;br /&gt;
 7566 PUTIN	MANAGER   	7839	1981 2975 20&lt;br /&gt;
 7782 MERKEL	MANAGER   	7839	1981 2450 10&lt;br /&gt;
 7698 BLAIR	MANAGER   	7839	1981 2850 30&lt;br /&gt;
 7839 BUSH	PRESIDENT   	0	1981 5000 10&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Filtering by field ⌘===&lt;br /&gt;
&lt;br /&gt;
Filter employees earning more than 1500.&lt;br /&gt;
 when&lt;br /&gt;
   e : Emp(sal &amp;gt; 1500)&lt;br /&gt;
 then    &lt;br /&gt;
     System.out.println(e.id + &amp;quot; &amp;quot; + e.name + &amp;quot;\t&amp;quot; + e.job  &lt;br /&gt;
     + &amp;quot;   \t&amp;quot; +  e.mgr  + &amp;quot;\t&amp;quot; + e.hiredate + &amp;quot; &amp;quot; + e.sal&lt;br /&gt;
      + &amp;quot; &amp;quot; + e.deptno );&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
 7788 CARNEGIE	ANALYST   	7566	1982 3000 20&lt;br /&gt;
 7902 TOOSK	ANALYST   	7566	1981 3000 20&lt;br /&gt;
 7499 BAROSSO	SALESMAN   	7698	1981 1600 30&lt;br /&gt;
 7566 PUTIN	MANAGER   	7839	1981 2975 20&lt;br /&gt;
 7782 MERKEL	MANAGER   	7839	1981 2450 10&lt;br /&gt;
 7698 BLAIR	MANAGER   	7839	1981 2850 30&lt;br /&gt;
 7839 BUSH	PRESIDENT   	0	1981 5000 10&lt;br /&gt;
&lt;br /&gt;
=== Operators ⌘===&lt;br /&gt;
There are different kinds of operators:&lt;br /&gt;
* Arithmetic operators (+, -, *, /, %, MOD, DIV)&lt;br /&gt;
* Relational operators (&amp;gt;, &amp;gt;=, ==, !=)&lt;br /&gt;
* Logical operators&lt;br /&gt;
** conjunction (and, &amp;amp;&amp;amp;, &amp;quot;,&amp;quot;)&lt;br /&gt;
** disjunction (or, ||)&lt;br /&gt;
** negation (!, do not confuse with &amp;#039;&amp;#039;not&amp;#039;&amp;#039;)&lt;br /&gt;
* Drools operators (in, matches, etc...)&lt;br /&gt;
&lt;br /&gt;
==== Relational operators ⌘====&lt;br /&gt;
&lt;br /&gt;
Find managers&lt;br /&gt;
 rule &amp;quot;Sample&amp;quot;&lt;br /&gt;
 when&lt;br /&gt;
    e : Emp(job == &amp;quot;MANAGER&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
 7566 PUTIN	MANAGER   	7839	1981 2975 20&lt;br /&gt;
 7782 MERKEL	MANAGER   	7839	1981 2450 10&lt;br /&gt;
 7698 BLAIR	MANAGER   	7839	1981 2850 30&lt;br /&gt;
&lt;br /&gt;
People hired in 1982&lt;br /&gt;
 when&lt;br /&gt;
    e : Emp(hiredate == 1982)&lt;br /&gt;
&lt;br /&gt;
 7934 ELISON	CLERK   	7782	1982 1300 10&lt;br /&gt;
 7788 CARNEGIE	ANALYST   	7566	1982 3000 20&lt;br /&gt;
&lt;br /&gt;
Select all except clerks.&lt;br /&gt;
 when&lt;br /&gt;
   e : Emp(job != &amp;#039;CLERK&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
 7788 CARNEGIE	ANALYST   	7566	1982 3000 20&lt;br /&gt;
 7902 TOOSK	ANALYST   	7566	1981 3000 20&lt;br /&gt;
 7521 WALTON	SALESMAN   	7698	1981 1250 30&lt;br /&gt;
 7844 GATES	SALESMAN   	7698	1981 1500 30&lt;br /&gt;
 7499 BAROSSO	SALESMAN   	7698	1981 1600 30&lt;br /&gt;
 7654 CHIRACK	SALESMAN   	7698	1981 1250 30&lt;br /&gt;
 7566 PUTIN	MANAGER   	7839	1981 2975 20&lt;br /&gt;
 7782 MERKEL	MANAGER   	7839	1981 2450 10&lt;br /&gt;
 7698 BLAIR	MANAGER   	7839	1981 2850 30&lt;br /&gt;
 7839 BUSH	PRESIDENT   	0	1981 5000 10&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To select people earning from 1000 to 2000 (inclusive)&lt;br /&gt;
&lt;br /&gt;
 when&lt;br /&gt;
   e : Emp(sal &amp;gt;= 1000 , sal &amp;lt;= 2000)&lt;br /&gt;
&lt;br /&gt;
 7934 ELISON	CLERK   	7782	1982 1300 10&lt;br /&gt;
 7876 FORD	CLERK   	7788	1983 1100 20&lt;br /&gt;
 7521 WALTON	SALESMAN   	7698	1981 1250 30&lt;br /&gt;
 7844 GATES	SALESMAN   	7698	1981 1500 30&lt;br /&gt;
 7499 BAROSSO	SALESMAN   	7698	1981 1600 30&lt;br /&gt;
 7654 CHIRACK	SALESMAN   	7698	1981 1250 30&lt;br /&gt;
&lt;br /&gt;
All lines below are equivalent &lt;br /&gt;
 e : Emp(sal &amp;gt;= 1000 , sal &amp;lt;= 2000)&lt;br /&gt;
 e : Emp(sal &amp;gt;= 1000 &amp;amp;&amp;amp; sal  &amp;lt;= 2000)&lt;br /&gt;
 e : Emp(sal &amp;gt;= 1000 &amp;amp;&amp;amp; &amp;lt;= 2000)&lt;br /&gt;
&lt;br /&gt;
==== &amp;#039;&amp;#039;in&amp;#039;&amp;#039; operator ⌘====&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;in&amp;#039;&amp;#039; operator checks if the value is in a set.&lt;br /&gt;
&lt;br /&gt;
Select people working in department no 10 or 20.&lt;br /&gt;
&lt;br /&gt;
 when&lt;br /&gt;
   e : Emp(deptno in (10,20))&lt;br /&gt;
&lt;br /&gt;
 7934 ELISON	CLERK   	7782	1982 1300 10&lt;br /&gt;
 7876 FORD	CLERK   	7788	1983 1100 20&lt;br /&gt;
 7788 CARNEGIE	ANALYST   	7566	1982 3000 20&lt;br /&gt;
 7369 THATCHER	CLERK   	7902	1980 800 20&lt;br /&gt;
 7902 TOOSK	ANALYST   	7566	1981 3000 20&lt;br /&gt;
 7566 PUTIN	MANAGER   	7839	1981 2975 20&lt;br /&gt;
 7782 MERKEL	MANAGER   	7839	1981 2450 10&lt;br /&gt;
 7839 BUSH	PRESIDENT   	0	1981 5000 10&lt;br /&gt;
&lt;br /&gt;
The above is equivalent to&lt;br /&gt;
    e : Emp(deptno == 10 || deptno == 20)&lt;br /&gt;
    e : (Emp(deptno == 10) or Emp(deptno == 20))&lt;br /&gt;
&lt;br /&gt;
 The above two lines are assessed by the Drools engine in completely different way.&lt;br /&gt;
 The &amp;#039;&amp;#039;or&amp;#039;&amp;#039; keywords will split the rule in two separate rules.&lt;br /&gt;
 PLEASE SEE RETE TREE FOR THOSE EXAMPLES!&lt;br /&gt;
&lt;br /&gt;
Select managers or clerks.&lt;br /&gt;
&lt;br /&gt;
 when&lt;br /&gt;
   e : Emp(job in (&amp;#039;CLERK&amp;#039;,&amp;#039;MANAGER&amp;#039;))&lt;br /&gt;
&lt;br /&gt;
 7934 ELISON	CLERK   	7782	1982 1300 10&lt;br /&gt;
 7876 FORD	CLERK   	7788	1983 1100 20&lt;br /&gt;
 7369 THATCHER	CLERK   	7902	1980 800 20 &lt;br /&gt;
 7900 BUFFETT	CLERK   	7698	1981 950 30&lt;br /&gt;
 7566 PUTIN	MANAGER   	7839	1981 2975 20&lt;br /&gt;
 7782 MERKEL	MANAGER   	7839	1981 2450 10&lt;br /&gt;
 7698 BLAIR	MANAGER   	7839	1981 2850 30&lt;br /&gt;
&lt;br /&gt;
==== &amp;#039;&amp;#039;matches&amp;#039;&amp;#039; operator ⌘====&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;maches&amp;#039; operator checks whether the values match the pattern (java regular expression).&lt;br /&gt;
&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;.*&amp;#039;&amp;#039;&amp;#039; matches any number of characters, even an empty string.&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039; matches exactly one character&lt;br /&gt;
More information:&lt;br /&gt;
http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html&lt;br /&gt;
&lt;br /&gt;
Select people with names starting with &amp;quot;B&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
 when&lt;br /&gt;
     e: Emp(name matches &amp;quot;B.*&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
 7900 BUFFETT	CLERK   	7698	1981 950 30&lt;br /&gt;
 7499 BAROSSO	SALESMAN   	7698	1981 1600 30&lt;br /&gt;
 7698 BLAIR	MANAGER   	7839	1981 2850 30&lt;br /&gt;
 7839 BUSH	PRESIDENT   	0	1981 5000 10&lt;br /&gt;
&lt;br /&gt;
Select people with second letter ‘a’.&lt;br /&gt;
&lt;br /&gt;
 when&lt;br /&gt;
     e: Emp(name matches &amp;quot;.A.*&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
 7788 CARNEGIE	ANALYST   	7566	1982 3000 20&lt;br /&gt;
 7521 WALTON	SALESMAN   	7698	1981 1250 30&lt;br /&gt;
 7844 GATES	SALESMAN   	7698	1981 1500 30&lt;br /&gt;
 7499 BAROSSO	SALESMAN   	7698	1981 1600 30&lt;br /&gt;
&lt;br /&gt;
==== &amp;#039;&amp;#039;not matches&amp;#039;&amp;#039; operator ⌘====&lt;br /&gt;
  when&lt;br /&gt;
     e: Emp(name not matches &amp;quot;B.*&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Note that this syntax is incorrect&lt;br /&gt;
  when&lt;br /&gt;
     e: Emp(name ! matches &amp;quot;B.*&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
     e: ! Emp(name matches &amp;quot;B.*&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
==== Compound conditions ⌘====&lt;br /&gt;
&lt;br /&gt;
You may use logical operators to build compound conditions.&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;and&amp;quot;, &amp;quot;&amp;amp;&amp;amp;&amp;quot;, &amp;quot;,&amp;quot; (conjunction)&lt;br /&gt;
* &amp;quot;or&amp;quot;, &amp;quot;||&amp;quot;	(disjunction)&lt;br /&gt;
* &amp;quot;not&amp;quot;, &amp;quot;!&amp;quot;	(negation)&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Examples&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Let’s find managers earning more than 2500.&lt;br /&gt;
&lt;br /&gt;
 when&lt;br /&gt;
     e: Emp(job == &amp;quot;MANAGER&amp;quot; , sal &amp;gt; 2500) &lt;br /&gt;
&lt;br /&gt;
 7566 PUTIN	MANAGER   	7839	1981 2975 20&lt;br /&gt;
 7698 BLAIR	MANAGER   	7839	1981 2850 30&lt;br /&gt;
&lt;br /&gt;
The line below gives the same result&lt;br /&gt;
 when&lt;br /&gt;
     e: Emp(job == &amp;quot;MANAGER&amp;quot; &amp;amp;&amp;amp; sal &amp;gt; 2500) &lt;br /&gt;
Not that the &amp;quot;,&amp;quot; and &amp;quot;&amp;amp;&amp;amp;&amp;quot; have different priority&lt;br /&gt;
&lt;br /&gt;
=== Operators priority ⌘===&lt;br /&gt;
&lt;br /&gt;
 (nested) property access    .	&lt;br /&gt;
 List/Map access            [ ]	&lt;br /&gt;
 constraint binding   :	&lt;br /&gt;
 multiplicative       * / %	 &lt;br /&gt;
 additive             + -	 &lt;br /&gt;
 shift                &amp;lt;&amp;lt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;	 &lt;br /&gt;
 relational           &amp;lt; &amp;gt; &amp;lt;= &amp;gt;= instanceof	 &lt;br /&gt;
 equality             == !=	&lt;br /&gt;
 bit-wise non-short circuiting AND               &amp;amp;	 &lt;br /&gt;
 bit-wise non-short circuiting exclusive OR	^	 &lt;br /&gt;
 bit-wise non-short circuiting inclusive OR	|	 &lt;br /&gt;
 logical AND	&amp;amp;&amp;amp;	 &lt;br /&gt;
 logical OR	||	 &lt;br /&gt;
 ternary	? :	 &lt;br /&gt;
 Comma separated AND	,&lt;br /&gt;
&lt;br /&gt;
==Exercises ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1.  Exercise&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Select all Salgrade facts&lt;br /&gt;
&lt;br /&gt;
 5 3001 9999&lt;br /&gt;
 4 2001 3000&lt;br /&gt;
 3 1401 2000&lt;br /&gt;
 2 1201 1400&lt;br /&gt;
 1 700 1200&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2.  Exercise&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Select shown data about employees who earn between 1000 and 2000.&lt;br /&gt;
&lt;br /&gt;
 7934 ELISON	CLERK   	7782	1982 1300 10&lt;br /&gt;
 7876 FORD	CLERK   	7788	1983 1100 20&lt;br /&gt;
 7521 WALTON	SALESMAN   	7698	1981 1250 30&lt;br /&gt;
 7844 GATES	SALESMAN   	7698	1981 1500 30&lt;br /&gt;
 7499 BAROSSO	SALESMAN   	7698	1981 1600 30&lt;br /&gt;
 7654 CHIRACK	SALESMAN   	7698	1981 1250 30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;3.  Exercise&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Select clerks working in department no 20.&lt;br /&gt;
&lt;br /&gt;
 7876 FORD	CLERK   	7788	1983 1100 20&lt;br /&gt;
 7369 THATCHER	CLERK   	7902	1980 800 20&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;4.  Exercise&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Select employees who have a boss.&lt;br /&gt;
&lt;br /&gt;
 7934 ELISON	CLERK   	7782	1982 1300 10&lt;br /&gt;
 7876 FORD	CLERK   	7788	1983 1100 20&lt;br /&gt;
 7788 CARNEGIE	ANALYST   	7566	1982 3000 20&lt;br /&gt;
 7369 THATCHER	CLERK   	7902	1980 800 20&lt;br /&gt;
 7902 TOOSK	ANALYST   	7566	1981 3000 20&lt;br /&gt;
 7521 WALTON	SALESMAN   	7698	1981 1250 30&lt;br /&gt;
 7900 BUFFETT	CLERK   	7698	1981 950 30&lt;br /&gt;
 7844 GATES	SALESMAN   	7698	1981 1500 30&lt;br /&gt;
 7499 BAROSSO	SALESMAN   	7698	1981 1600 30&lt;br /&gt;
 7654 CHIRACK	SALESMAN   	7698	1981 1250 30&lt;br /&gt;
 7566 PUTIN	MANAGER   	7839	1981 2975 20&lt;br /&gt;
 7782 MERKEL	MANAGER   	7839	1981 2450 10&lt;br /&gt;
 7698 BLAIR	MANAGER   	7839	1981 2850 30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;5.  Exercise&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Select manager’s annual remuneration.&lt;br /&gt;
&lt;br /&gt;
 7566 PUTIN	MANAGER   	7839	1981 35700 20&lt;br /&gt;
 7782 MERKEL	MANAGER   	7839	1981 29400 10&lt;br /&gt;
 7698 BLAIR	MANAGER   	7839	1981 34200 30&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Use computation of annual salary in:&lt;br /&gt;
* WHEN part&lt;br /&gt;
* THEN part&lt;br /&gt;
What is the difference?&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;6.  Exercise&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Find employees with second letter “L” and third “A”.&lt;br /&gt;
&lt;br /&gt;
  BLAIR&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;7.  Exercise&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Find employees whose name ends with N and contains T.&lt;br /&gt;
&lt;br /&gt;
  PUTIN  &lt;br /&gt;
  WALTON &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;8.  Exercise&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Find employees who either work as managers or work in department no 10, but not both.&lt;br /&gt;
&lt;br /&gt;
  BUSH    PRESIDENT  10     &lt;br /&gt;
  BLAIR   MANAGER    30     &lt;br /&gt;
  PUTIN   MANAGER    20     &lt;br /&gt;
  ELISON  CLERK      10&lt;/div&gt;</summary>
		<author><name>Fstachecki</name></author>
	</entry>
</feed>