2016-12-29 6 views
0

Этот вопрос относится к более раннему post of mine с кодом, который я запускал на SQL Server. Теперь я использую Sybase ASE 15.7 и сталкиваюсь с проблемами с CTE. Ошибка, которую я получаю, находится на части кода WITH. Я проверил this post, который заявляет, что использует подзапросы, но разве это не то, что я использую? Я не так хорошо знаком с CTE's.Sybase ASE 15.7 CTE to Subquery Issue

Единственное изменение, которое я сделал между SQL Server и Sybase, заключалось в том, что я использую temp table, #TEST1, вместо реального table.

Что мне нужно изменить, чтобы заставить запрос работать?

WITH range 
AS (
SELECT NM1 AS c FROM #TEST1 
    UNION 
    SELECT NM2 FROM #TEST1 
    UNION 
    SELECT NM3 FROM #TEST1 
    UNION 
    SELECT NM4 FROM #TEST1 
    UNION 
    SELECT NM5 FROM #TEST1) 
SELECT r1.c, r2.c, r3.c, r4.c, r5.c 
FROM range r1, range r2, range r3, range r4, range r5 
WHERE r1.c<r2.c AND r2.c<r3.c AND r3.c<r4.c AND r4.c<r5.c 

ответ

0

Я повернута исходную таблицу, которая позволила мне устранить WITH часть кода. И теперь это работает!

+1

CTE не поддерживаются в Sybase ASE, поэтому вам действительно нужно переписать весь запрос. – RobV

Смежные вопросы