Nano Hash - криптовалюты, майнинг, программирование

Замените значение строки пустой строкой, если она повторяется

можно ли заменить значение строки пустой строкой, если найдено повторяющееся значение?

Например

SELECT ProductCode, Color FROM Product

--------------------
ProductCode | Color
--------------------
   00A0B    |  Red
   00A0B    |  Blue
   00A0C    |  Red
   00A0C    |  Black
   00A0C    |  White
--------------------

to

--------------------
ProductCode | Color
--------------------
   00A0B    |  Red
            |  Blue
   00A0C    |  Red
            |  Black
            |  White
--------------------

Я использую SQL Server 2012.


Ответы:


1

Часто этот тип преобразования лучше выполнять на прикладном уровне, потому что набор результатов не похож на SQL. То есть порядок важен для понимания строк.

Но вы можете сделать это как:

select (case when row_number() over (partition by ProductCode order by (select NULL)) = 1
             then ProductCode
        end) as ProductCode
       Color
from Product
order by ProductCode;
15.10.2015
  • является функцией row_number() sql по умолчанию или она составлена? 27.03.2018
  • @Карен. . . Я понятия не имею, что означает ваш комментарий. ROW_NUMBER() является частью ANSI SQL и существует уже два десятилетия. 27.03.2018

  • 2

    Используйте ROW_NUMBER и CASE:

    WITH Cte AS(
        SELECT *,
            Rn = ROW_NUMBER() OVER(PARTITION BY ProductCode ORDER BY (SELECT NULL))
        FROM Product
    )
    SELECT
        ProductCode = CASE WHEN Rn = 1 THEN c.ProductCode ELSE '' END,
        Color 
    FROM Cte c
    ORDER BY c.ProductCode
    
    15.10.2015
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..