Пишу:
SELECT Null As CODE, "не опр" AS ORMNE, Null AS SORT FROM ORBASE
UNION
SELECT ORBASE.CODE, ORBASE.ORMNE, 1 AS SORT
FROM ORBASE
ORDER BY SORT ASC, ORMNE ;
--результат
CODE ORMNE SORT
не опр
0 (слж) 1
1 000001 1
2 000002 1
3 000003 1
4 000004 1
5 Туча 1 |
|
как только TOP:
SELECT TOP 2 Null As CODE, "не опр" AS ORMNE, Null AS SORT FROM ORBASE
UNION
SELECT ORBASE.CODE, ORBASE.ORMNE, 1 AS SORT
FROM ORBASE
ORDER BY SORT ASC, ORMNE ;
--результат
CODE ORMNE SORT
0 (слж) 1
1 000001 1
2 000002 1
3 000003 1
4 000004 1
не опр
5 Туча 1
|
|
(TOP 2 , а не 1 - для проверки гипотезы на отключку ORDER BY для 1 записи)
но:
SELECT ORBASE.CODE, ORBASE.ORMNE, 1 AS SORT
FROM ORBASE
UNION
SELECT TOP 1 NULL AS CODE, "не опр" AS ORMNE, NULL AS SORT
FROM ORBASE
ORDER BY SORT, ORMNE;
--результат
CODE ORMNE SORT
не опр
0 (слж) 1
1 000001 1
2 000002 1
3 000003 1
4 000004 1
5 Туча 1 |
|
!!- всего -то поменял местами Select-ы (трах ее тибедох)
Вроде бы всегда писал как в 1-м случае (во 2-м?), и не замечал... В 2к вообще работает только 3, если 1 - ругань на типы данных
а если 2 или так :
SELECT TOP 1 Null As CODE, "не опр" AS ORMNE, NULL AS SORT FROM ORBASE
ORDER BY NULL , ORMNE
UNION
SELECT ORBASE.CODE, ORBASE.ORMNE AS ORMNE,clng(1) AS SORT
FROM ORBASE
|
|
(тут еще надо понять, какое из полей с Null AS ... он юзает в сортировке)
но при этом тип данных в числовых полях оченно странен - числа отображаются как "нотображаемые символы" - палки какие-та одна-две, даже для шибко больших чисел).
Кому не лень - проверьте. Мож у меня тут что не то завелось? (в джете). Или с головй что - типа "так и должен SQL работать"?