Преобразование номера запроса Filenet в порядке

У меня есть этот запрос Filenet:

SELECT 
    [This], [Ente], [IDAtto], [Numero], [Tipologia], [DataEmissione] 
FROM   
    [AttoNormativo] 
WHERE 
    ([DataEmissione] > 20160405T215959Z AND [DataEmissione] < 20160408T220001Z) 
ORDER BY 
    [DataEmissione] desc, [Tipologia], [Numero], [Ente]
OPTIONS (TIMELIMIT 180)

Проблема в том, что [Numero] Свойство является строковым типом, поэтому оно не упорядочено должным образом. Есть какая-то функция приведения, которую я могу использовать для преобразования ее в числовой?

Большое спасибо.

2 ответа

Решение

Согласно документации, свойства типа Boolean, DateTime, Float64, ID, Integer32, а также Object может появиться в ORDER BY пункт, наряду с short String свойства. ни Binary ни long String свойства могут быть использованы для заказа запроса.

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

Теперь, если вы беспокоитесь о null значения, то вы можете рассмотреть возможность использования COALESCE функция.

<orderby> ::= [ COALESCE '(' <property_spec>, <literal> ')' || <property_spec> ] [ ASC | DESC ]

Вы можете узнать больше о реляционных запросах - здесь.

Нет, нет Согласно документам, orderby представляет собой property_spec, за которым, необязательно, следует ASC или DESC.

<orderby> ::= <property_spec> [ ASC | DESC ]

Единственной функцией, разрешенной в ORDER BY, является COALESCE(), которая может использоваться для предоставления значения сортировки по умолчанию, когда данные равны нулю.

Другие вопросы по тегам