Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 SQL запрос, непонятки с сортировкой  [new]
NSK-Николай
Member

Откуда:
Сообщений: 40
Простой запрос:

SELECT PersonFam, PersonName, PersonOtch, PersonBirthday
FROM dbo.BD2009_Persons
ORDER BY PersonBirthday, где PersonBirthday - datetime

, но сортировки не происходить. Все перелазил, подозреваю, что это настройки сервера, а где не знаю!!!
Сервер: SQL Server 2005 (64 bit)

Кто-нибудь сталкивался?
23 май 11, 05:49    [10692026]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос, непонятки с сортировкой  [new]
iljy
Member

Откуда:
Сообщений: 8711
NSK-Николай,

1. Полную врсию сервера.
2. Пример данных.
23 май 11, 09:05    [10692239]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос, непонятки с сортировкой  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
NSK-Николай,

напишите здесь CREATE TABLE
Подозреваю, что PersonBirthday - вовсе не DATETIME
23 май 11, 09:20    [10692302]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос, непонятки с сортировкой  [new]
NSK-Николай
Member

Откуда:
Сообщений: 40
Версия сервера: Microsoft SQL Server Developer Edition (64 bit) версия: 9.00.1399.06, а данные такие :

1.Иванов Иван иванович,13.05.1965
2.Петров Петр Петрович,11.05.1960
3.Сидоров Сидор Сидорович,05.05.1978
4.Жариков Сидор Сидорович,24.05.1975

запрос выполняется в SQL Server Management Studio
23 май 11, 09:56    [10692413]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос, непонятки с сортировкой  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
NSK-Николай, скрипт создания таблицы дайте, данные не столь интересны.
23 май 11, 10:00    [10692433]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос, непонятки с сортировкой  [new]
iljy
Member

Откуда:
Сообщений: 8711
NSK-Николай,

сервер без единого СП, а их было уже 4.
Данные надо приводить в виде скрипта, вместе с созданием таблицы.
23 май 11, 10:01    [10692437]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос, непонятки с сортировкой  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
NSK-Николай
Версия сервера: Microsoft SQL Server Developer Edition (64 bit) версия: 9.00.1399.06, а данные такие :

1.Иванов Иван иванович,13.05.1965
2.Петров Петр Петрович,11.05.1960
3.Сидоров Сидор Сидорович,05.05.1978
4.Жариков Сидор Сидорович,24.05.1975

запрос выполняется в SQL Server Management Studio
Мои подозрения растут!
23 май 11, 10:05    [10692452]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос, непонятки с сортировкой  [new]
NSK-Николай
Member

Откуда:
Сообщений: 40
CREATE TABLE [dbo].[BD2009_Persons](
[PersonID] [int] IDENTITY(1,1) NOT NULL,
[PersonNomer] [nvarchar](15) COLLATE Cyrillic_General_CI_AS NULL,
[PersonFam] [nvarchar](50) COLLATE Cyrillic_General_CI_AS NOT NULL,
[PersonName] [nvarchar](30) COLLATE Cyrillic_General_CI_AS NOT NULL,
[PersonOtch] [nvarchar](30) COLLATE Cyrillic_General_CI_AS NOT NULL,
[Sex] [int] NOT NULL,
[PersonBirthday] [datetime] NULL,
[PersonFoto] [image] NULL,
[PersonMesto] [nvarchar](255) COLLATE Cyrillic_General_CI_AS NULL, .... и т.д.
23 май 11, 10:06    [10692462]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос, непонятки с сортировкой  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
NSK-Николай
CREATE TABLE [dbo].[BD2009_Persons](
[PersonID] [int] IDENTITY(1,1) NOT NULL,
[PersonNomer] [nvarchar](15) COLLATE Cyrillic_General_CI_AS NULL,
[PersonFam] [nvarchar](50) COLLATE Cyrillic_General_CI_AS NOT NULL,
[PersonName] [nvarchar](30) COLLATE Cyrillic_General_CI_AS NOT NULL,
[PersonOtch] [nvarchar](30) COLLATE Cyrillic_General_CI_AS NOT NULL,
[Sex] [int] NOT NULL,
[PersonBirthday] [datetime] NULL,
[PersonFoto] [image] NULL,
[PersonMesto] [nvarchar](255) COLLATE Cyrillic_General_CI_AS NULL, .... и т.д.
Как проверяете, что не упорядочивается?
Пример неупорядоченных строк можно посмотреть?
23 май 11, 10:27    [10692573]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос, непонятки с сортировкой  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
iap
Как проверяете, что не упорядочивается?
Пример неупорядоченных строк можно посмотреть?
В результате запроса с ORDER BY из первого поста, разумеется.
23 май 11, 10:30    [10692594]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос, непонятки с сортировкой  [new]
NSK-Николай
Member

Откуда:
Сообщений: 40
PersonID |PersonFam |PersonName|PersonOtch |PersonBirthday
4 |Иванов |Иван |Иванович |13.05.1965
34 |Петров |Петр |Петрович |11.05.1960
39 |Сидоров |Сидор |Сидорович |05.05.1978
57 |Жариков |Сидор | Сидорович |24.05.1975
23 май 11, 10:33    [10692612]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос, непонятки с сортировкой  [new]
NSK-Николай
Member

Откуда:
Сообщений: 40
Сортировка по PersonID получается
23 май 11, 10:34    [10692623]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос, непонятки с сортировкой  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
NSK-Николай, странно... А в плане сортировка есть?
Если это выполнить, то что получится?:
CREATE TABLE [dbo].[tmpBD2009_Persons](
[PersonID] [int] IDENTITY(1,1) NOT NULL,
[PersonNomer] [nvarchar](15) COLLATE Cyrillic_General_CI_AS NULL,
[PersonFam] [nvarchar](50) COLLATE Cyrillic_General_CI_AS NOT NULL,
[PersonName] [nvarchar](30) COLLATE Cyrillic_General_CI_AS NOT NULL,
[PersonOtch] [nvarchar](30) COLLATE Cyrillic_General_CI_AS NOT NULL,
[Sex] [int] NOT NULL,
[PersonBirthday] [datetime] NULL,
[PersonFoto] [image] NULL,
[PersonMesto] [nvarchar](255) COLLATE Cyrillic_General_CI_AS NULL
)
GO

INSERT INTO [dbo].[tmpBD2009_Persons]([PersonFam],[PersonName],[PersonOtch],[Sex],[PersonBirthday])
SELECT 'Иванов','Иван','Иванович',255,'20110101' UNION ALL
SELECT 'Петров','Петр','Петрович',255,'20010101' UNION ALL
SELECT 'Сидоров','Сидор','Сидорович',255,'19800101' UNION ALL
SELECT 'Хреново','Гадя','Петрович',255, NULL
GO

SELECT PersonFam, PersonName, PersonOtch, PersonBirthday
FROM dbo.[tmpBD2009_Persons]
ORDER BY PersonBirthday
GO

DROP TABLE [dbo].[tmpBD2009_Persons]
GO
23 май 11, 12:21    [10693438]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос, непонятки с сортировкой  [new]
NSK-Николай
Member

Откуда:
Сообщений: 40
Результат:
Хреново Гадя Петрович NULL
Сидоров Сидор Сидорович 1980-01-01 00:00:00.000
Петров Петр Петрович 2001-01-01 00:00:00.000
Иванов Иван Иванович 2011-01-01 00:00:00.000
23 май 11, 12:42    [10693654]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос, непонятки с сортировкой  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
NSK-Николай
Результат:
Хреново Гадя Петрович NULL
Сидоров Сидор Сидорович 1980-01-01 00:00:00.000
Петров Петр Петрович 2001-01-01 00:00:00.000
Иванов Иван Иванович 2011-01-01 00:00:00.000
То есть, всё хорошо?
23 май 11, 12:43    [10693673]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос, непонятки с сортировкой  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
NSK-Николай, ну вроде как сортируется, али нет? Вы ничего не скрываете?
23 май 11, 12:44    [10693682]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос, непонятки с сортировкой  [new]
NSK-Николай
Member

Откуда:
Сообщений: 40
Ни чего не понимаю !!!
Делаю запрос:
SELECT PersonFam, PersonName, PersonOtch, PersonBirthday
FROM dbo.BD2009_Persons
WHERE (MONTH(PersonBirthday) = MONTH(GETDATE()))
ORDER BY PersonBirthday
23 май 11, 13:03    [10693832]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос, непонятки с сортировкой  [new]
NSK-Николай
Member

Откуда:
Сообщений: 40


К сообщению приложен файл. Размер - 29Kb
23 май 11, 13:04    [10693840]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос, непонятки с сортировкой  [new]
Glory
Member

Откуда:
Сообщений: 104751
И что на скриншоте упорядоченно неправильно ?
23 май 11, 13:05    [10693845]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос, непонятки с сортировкой  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
NSK-Николай,

дык на скриншоте отсортировано все ж?
23 май 11, 13:06    [10693856]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос, непонятки с сортировкой  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
NSK-Николай
Ни чего не понимаю !!!
Делаю запрос:
SELECT PersonFam, PersonName, PersonOtch, PersonBirthday
FROM dbo.BD2009_Persons
WHERE (MONTH(PersonBirthday) = MONTH(GETDATE()))
ORDER BY PersonBirthday
По-Вашему, месяц уникален, да?
А в разных годах есть месяцы с одним и тем же номером, разве не так?
То есть Вы видите, что больший месяц получился после большего,
но не замечаете, что год с меньшим месяцем больше года с большим!

Банальный совет: старайтесь никогда не накладывать ограничения на функцию от поля.
А только на само поле. Иначе даже если по этому полю будет построен индекс, сервер никогда не будет его использовать.
23 май 11, 13:08    [10693875]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос, непонятки с сортировкой  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Хотя, по поводу месяца в данном случае я неправ, ибо имеются в виду родившиеся в текущем месяце, но в разные годы
Тогда независимость от года надо прописать и в ORDER BY
23 май 11, 13:10    [10693894]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос, непонятки с сортировкой  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
ORDER BY DAY(PersonBirthday)
раз уж Вы всё равно смотрите один месяц
23 май 11, 13:12    [10693905]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос, непонятки с сортировкой  [new]
NSK-Николай
Member

Откуда:
Сообщений: 40
Спасибо разобрался
23 май 11, 13:21    [10693986]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить