Обновление для объединения значений и удаления одного из них с помощью SQL

вы можете записать эту строку в Controller

json.MaxJsonLength = 2147483644;

, вы также можете записать эту строку в web.config

<configuration>
  <system.web.extensions>
    <scripting>
        <webServices>
            <jsonSerialization maxJsonLength="2147483647">
            </jsonSerialization>
        </webServices>
    </scripting>
  </system.web.extensions>

`

To be на безопасной стороне, используйте оба.

1
задан Jens Mühlenhoff 16 January 2019 в 13:26
поделиться

2 ответа

Вы можете выполнить удаление, используя условие where на основе результата для evid с более чем результатом

select from my_table 
where evid in (
  select  evid, count(*)
  from my_table  
  group by evid 
  having count(*) > 1 
) and roles = 'T'
0
ответ дан scaisEdge 16 January 2019 в 13:26
поделиться

Я бы создал временную таблицу с различными значениями для evid, place, Officer, Trident и всех других полей, которые должны различаться:

SELECT
    MIN(item) AS "item"
  , evid
  , place
  , officer
  , trident
  , SPACE(100) AS "roles"
INTO #tmp
FROM table
GROUP BY
  , evid
  , place
  , officer
  , trident

UPDATE #tmp SET roles = '';

На следующем шаге вы должны агрегировать роли Поскольку ADS не имеет функции STRING_AGG, вы должны делать это с помощью курсоров, циклов и т. д.

Я уже писал такой код раньше, , посмотрите здесь , например.

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

BEGIN TRANSACTION;

DELETE FROM table;
-- Assuming the table and the temp table have the same exact fields
INSERT INTO table SELECT * FROM #tmp;

END TRANSACTION;
0
ответ дан Jens Mühlenhoff 16 January 2019 в 13:26
поделиться
Другие вопросы по тегам:

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