Я могу использовать С в TSQL дважды для фильтрации набора результатов как мой пример?

ваш класс 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

14
задан Cade Roux 28 January 2009 в 21:05
поделиться

3 ответа

Я делаю все это время:

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 снова.

30
ответ дан 1 December 2019 в 10:05
поделиться

Вы можете нам серия подзапросов. Или подзапросы вкладываются в 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

0
ответ дан 1 December 2019 в 10:05
поделиться

Нет, у Вас может только быть один CTE в операторе, как я узнал на днях.

РЕДАКТИРОВАНИЕ : И тот оператор WITH является Общим Выражением Таблицы, очень удобной функцией.

-3
ответ дан 1 December 2019 в 10:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: