Besoin d'une requête SQL pour append les lettres à la colonne entier Mes données exemple seraient comme
+--------+----------+--------+ | Number | Date | amount | +--------+----------+--------+ | 135 | 20160901 | $10 | | 135 | 20160912 | $20 | | 135 | 20160915 | $30 | +--------+----------+--------+
Aurait besoin d'une sortie comme ci-dessous, les résultats devraient être basés sur Date
+--------+--------+ | Number | amount | +--------+--------+ | 135X | $10 | | 135XX | $20 | | 135XXX | $30 | +--------+--------+
X est ajouté une fois, dans le premier logging parce que l'logging a été la première transaction dans un mois, XX dans la seconde car il s'agissait de la deuxième transaction et ainsi de suite, doivent append le 'N' non de X en fonction du nombre de fois un mois.
Veuillez suggérer
Voici une méthode:
select (cast(number as varchar(255)) + replicate('X', row_number() over (partition by number, year(date), month(date) order by date) ) ) as number, amount from t;
Vous pouvez utiliser une logique similaire pour mettre à jour la colonne Number
, en supposant qu'il s'agit d'une colonne de string nommée de manière maladroite.