Рейтинг:
2
Santosh kumar Pithani
SELECT
NULLIF(bid,LAG(bid)OVER(ORDER BY bid)) AS BID,
DEPT,
QTY
FROM Test_table
CHill60
5 б.
Однако стоит отметить, что это будет работать только для версий SQL Server 2012 года (не экспресс-версия) и более поздних версий (включая экспресс-версию с 2014 года)
Richard Deeming
Почему вы думаете, что это не сработает в 2012 Express?
CHill60
Опыт. Возможно, я пропустил патч, но ЛАГ просто не работал, когда я попробовал его в 2012 express. Но с более поздними версиями все в порядке. Я не планирую переустанавливать, чтобы посмотреть, было ли это просто пропущенное обновление :-)
Santosh kumar Pithani
Спасибо,за ваш комментарий.
Member 13464294
спасибо за ваше предложение @santosh и все такое.
Но как chill60 заявление я сталкиваюсь с проблемой "лага", что он говорит, что ЛАГ не встроен в функцию sql в момент компиляции кода.
Рейтинг:
1
Karthik_Mahalingam
пробовать
WITH CTE
AS
(
SELECT bid, dept, qty,
ROW_NUMBER() OVER(PARTITION BY bid ORDER BY bid) RowNo
FROM tblTest
)
SELECT
CASE RowNo
WHEN 1 THEN bid
ELSE null // null or empty, decide what you want to print for duplicate value
END AS bid
,dept, qty
FROM CTE
CHill60
5 б. Работает со всеми версиями с 2005 вверх
Karthik_Mahalingam
Спасибо CHill60
Member 13464294
танкс за твое предложение, Картик. можете ли вы сказать, что есть какой-то вариант сохранить эту строку ставок пустой, а не нулевой?
Танкс заранее.
Karthik_Mahalingam
Да есть такое.