Символы REPLACE и Unicode в SQL

Вам нужно использовать что-то, что DB2 вызывает OLAP-функции (другие движки RDMS обычно называют их оконными функциями - оба термина действительны). Функция OLAP позволяет вам возвращать аналитические данные о строке, например, что это за номер в отсортированном списке.

Для вашего запроса вы хотите вернуть только первую строку для каждого человека, поэтому мы используем функцию OLAP под названием ROW_NUMBER(). Когда мы используем эту функцию, мы хотим разделить данные Col1 / Col2 (т.е. мы группируемся по этим данным), а затем выполнить обратную сортировку по Col3, чтобы получить последний результат. После этого мы хотим выбрать строки, которые имеют верхнее значение в функции OLAP, например:

SELECT *
FROM (
    SELECT
        *,
        ROW_NUMBER() OVER (PARTITION BY Col1, Col2 ORDER BY Col3 DESC) AS rn
    FROM schema.table
) AS ranked_scenarios
WHERE rn = 1

6
задан Tomalak 16 October 2008 в 18:38
поделиться

1 ответ

Попробуйте это (предположение, что у Вас есть SQL-сервер, где я мог просто воспроизвести то поведение):

Select Replace(N'ClΘmentine', N'Θ', N'é')

Необходимо сказать SQL Server, что он имеет дело со строками Unicode, для именно это N.

9
ответ дан 10 December 2019 в 02:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: