ваш класс customComparator должен реализовать java.util.Comparator для использования. он также должен переопределять compare () AND equals ()
compare () должен ответить на вопрос: Является ли объект 1 меньше, равным или большим, чем объект 2?
full docs: http://java.sun.com/j2se/1.5.0/docs/api/java/util/Comparator.html
Я делаю все это время:
WITH stuff1 AS (
SELECT name
,startdate
,id
FROM employees
WHERE startdate > 0
)
,stuff2 AS (
SELECT name
,startdate
,id
FROM stuff1
)
SELECT *
FROM stuff2
WHERE id > 10
Насколько я могу сказать, я не достиг предела в CTEs.
единственная вещь Вы не можете сделать (который был бы довольно полезен), повторное использование CTEs в отдельном SELECT
с:
WITH stuff1 AS (
SELECT name
,startdate
,id
FROM employees
WHERE startdate > 0
)
,stuff2 AS (
SELECT name
,startdate
,id
FROM stuff1
)
SELECT *
FROM stuff2
WHERE id > 10
;
SELECT *
FROM stuff2
WHERE id < 10
Говорят. Вместо этого необходимо скопировать и вставить всю цепочку CTE снова.
Вы можете нам серия подзапросов. Или подзапросы вкладываются в CTE.
пример использования подзапросов Northwind:
SELECT * FROM
(SELECT * FROM
(SELECT * FROM dbo.Employees WHERE Country = 'USA') as TableFiltered1
) AS TableFilterd2 WHERE City = 'Seattle'
можно использовать два CTEs, но возможно не способ, которым Вы хотели, видят:
http://www.4guysfromrolla.com/webtech/071906-1.shtml
Нет, у Вас может только быть один CTE в операторе, как я узнал на днях.
РЕДАКТИРОВАНИЕ : И тот оператор WITH является Общим Выражением Таблицы, очень удобной функцией.