У меня есть стол с тремя колонками по имени cid
, orderdate
и priororderdate
среди прочих.SQL: Создать новый столбец идентификатора, который изменяется в зависимости от значений других трех столбцов?
Вот как выглядит таблица:
cid orderdate priororderdate position
12 NULL NULL 1
12 NULL NULL 2
12 NULL NULL 3
12 2014-08-08 23:25 NULL 1
12 2014-08-08 23:25 NULL 2
12 2014-08-08 23:25 NULL 3
12 2014-08-08 23:25 NULL 4
12 2014-09-06 17:19 2014-08-08 23:25 1
12 2014-09-06 17:19 2014-08-08 23:25 2
12 2014-09-06 17:19 2014-08-08 23:25 3
13 NULL NULL 1
13 NULL NULL 2
13 NULL NULL 3
Сочетание колонн cid
, orderdatetime
и priororderdatetime
определяет уникальный fpid
(новый столбец, я хочу создать). Таким образом, конечный результат будет:
cid orderdate priororderdate position fpid
12 NULL NULL 1 1
12 NULL NULL 2 1
12 NULL NULL 3 1
12 2014-08-08 23:25 NULL 1 2
12 2014-08-08 23:25 NULL 2 2
12 2014-08-08 23:25 NULL 3 2
12 2014-08-08 23:25 NULL 4 2
12 2014-09-06 17:19 2014-08-08 23:25 1 3
12 2014-09-06 17:19 2014-08-08 23:25 2 3
12 2014-09-06 17:19 2014-08-08 23:25 3 3
13 NULL NULL 1 4
13 NULL NULL 2 4
13 NULL NULL 3 4
Как я могу создать fpid
колонку?
Данные, которые вы показываете, показывают, что они не уникальны. Вы можете рассчитать значение с помощью триггера или в вашем программном коде и обеспечить уникальность уровня db с помощью уникального индекса. – NoChance
Это звучит как проблема [XY] (http://meta.stackexchange.com/q/66377/135230), так как вы можете различать все строки, в которых первые три столбца одинаковы, используя 'GROUP BY'. Для чего вы собираетесь использовать 'fpid'? –