Вместо right()
Postgres вам нужно использовать Oracle substr ()
и вместо ~
(чувствительные к регистру регулярные выражения типа оператора) regexp_like () функция с 'c'
в качестве аргумента 3d (то есть с учетом регистра, хотя может быть опущена):
SELECT * FROM file
WHERE
file_name IS NOT NULL
AND
REGEXP_LIKE(
CASE
WHEN file_name LIKE '\\%' THEN substr(file_name, 2)
ELSE file_name
END, '^[.]|[.], 'c');
У меня была похожая проблема, и в результате я использовал ROW_NUMBER в своем запросе, чтобы предоставить целое число для значения строки, а затем использовал SUM (IIF (myRowNumber = 1, myValue, 0)).
Я отредактирую это, когда доберусь до работы и предоставлю больше данных, но подумал, что этого может быть достаточно, чтобы вы начали. Мне тоже интересно решение Адольфа.
Пух! Где мой колышек?!
Задумывались ли вы об использовании для этого в SQL функций управления окнами / ранжирования?
Это позволяет вам объединять данные без потери детализации
, например, «Представьте для диапазона значений, вы хотите, чтобы Мин и Макс возвращается, но вы также хотите вернуть исходные данные (без сводки данных).
Group Value Min Max
A 3 2 9
A 7 2 9
A 9 2 9
A 2 2 9
B 5 5 7
B 7 5 7
C etc..
Синтаксис выглядит странно, но его просто
AggregateFunctionYouWant OVER (WhatYouWantItGroupedBy, WhatYouWantItOrderedBy) as AggVal
ваш набор данных немного странный, но я думаю, что понимаю, куда вы идете.
попробуйте вернуть набор данных в следующем порядке: Тип, продукт, SAS, SAE, клиент, заказанный кол-во
, что я хотел бы сделать, это создать отчет с элементом управления таблицей. я бы настроил тип, продукт и клиента как три отдельные группы. я бы поместил данные sas и sae в ту же группу, что и продукт, а количество в группу клиентов. это должно напоминать то, что я считаю, что вы пытаетесь пойти на. ваш sas и sae должны быть в первую очередь ()
Написать подзапрос.
В идеале SSRS нужна сумма (Distinct ())
Перепишите ваш запрос, чтобы сделать это правильно.
Я подозреваю, что ваша проблема в том, что вы Вы пишете запрос, который дает неверные результаты, или у вас плохо спроектированные таблицы. Не зная больше о том, что вы пытаетесь сделать, я не могу сказать вам, как это исправить, но у него плохой «запах».