powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Индекс по функции
10 сообщений из 10, страница 1 из 1
Индекс по функции
    #38182219
ArtMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как в ms sql сделать индекс по функции (такая фишка есть в оракле).
Проблема в сортировке поля даты, где есть NULL значения (NULL считать самым большим значением).
...
Рейтинг: 0 / 0
Индекс по функции
    #38182227
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по сабжу - попробуйте сделать индекс по вычислимому полю
кажется, оно должно быть persisted для этого... точно не помню, гляньте в доке

по поводу сортировки я, честно говоря, не понял что за проблема. наверное, что-то оптимизируете
...
Рейтинг: 0 / 0
Индекс по функции
    #38182254
Фотография ОперацияПингвин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделать можно, но сервер запросы к этой таблице перестанет параллелить.
...
Рейтинг: 0 / 0
Индекс по функции
    #38182523
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArtManПроблема в сортировке поля даты, где есть NULL значения (NULL считать самым большим значением).По возрастанию:
Код: sql
1.
ORDER BY CASE WHEN DateField IS NULL THEN 0 ELSE 1 END DESC, DateField;

По убыванию:
Код: sql
1.
ORDER BY CASE WHEN DateField IS NULL THEN 0 ELSE 1 END, DateField DESC;

В чём проблема?
...
Рейтинг: 0 / 0
Индекс по функции
    #38182602
ArtMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
проблема в том, что индекс не берется и операция сортировки от этого дорогая.

Почему я не могу создать колонку вычисляемую isnull([MYDATE],'99991231') с типом persisted, сервер ругается что

Код: plaintext
Computed column С1 in table T1 cannot be persisted because the column is non-deterministic.
...
Рейтинг: 0 / 0
Индекс по функции
    #38182608
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArtManпроблема в том, что индекс не берется и операция сортировки от этого дорогая.

Почему я не могу создать колонку вычисляемую isnull([MYDATE],'99991231') с типом persisted, сервер ругается что

Код: plaintext
Computed column С1 in table T1 cannot be persisted because the column is non-deterministic.
CREATE TABLE покажите
...
Рейтинг: 0 / 0
Индекс по функции
    #38182609
Фотография Shakill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArtManпроблема в том, что индекс не берется и операция сортировки от этого дорогая.

Почему я не могу создать колонку вычисляемую isnull([MYDATE],'99991231') с типом persisted, сервер ругается что

Код: plaintext
Computed column С1 in table T1 cannot be persisted because the column is non-deterministic.


Код: sql
1.
isnull([MYDATE], CONVERT(datetime2, '9999-12-31', 126)))
...
Рейтинг: 0 / 0
Индекс по функции
    #38182669
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, 112-й стиль тоже делает функцию детерминированной.
Код: sql
1.
ISNULL([MYDATE],CONVERT(DATETIME,'99991231',112))
...
Рейтинг: 0 / 0
Индекс по функции
    #38182679
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для индекса по вычисляемому полю PERSISTED вовсе не обязательно.
...
Рейтинг: 0 / 0
Индекс по функции
    #38182743
Фотография ОперацияПингвин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
isnull( @date, {d '2100-01-01'} )
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Индекс по функции
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]