如何重新排列数据

时间:2010-12-20 01:41:12

标签: sql

我有一张这样的表: -

Item            Model
------------------------
A               10022009
B               10032006
C               05081997

我需要将Model列重新排列/转换为以下格式: -

Item            Model
------------------------
A               20090210
B               20060310
C               19970805

“模型”列是字符。

由于

2 个答案:

答案 0 :(得分:2)

您可以尝试以下

UPDATE MyTable
SET Model = substr(Model, 5, 4) + substr(Model, 3, 2) + substr(Model, 1, 2)

答案 1 :(得分:1)

正确这样做的方式,假设那些是日期字段(它们看起来确实如此),就是将这些数据放入date类型列,而不是字符串类型列。

然后您可以使用DBMS提供的日期/时间操作函数,因为它们可以使用它们,包括能够以您想要的格式和顺序提取它们。

通常情况下,我会建议使用子字符串进行简单的文本更改,但是,由于您无论如何都要更改数据,最好的做法是咬紧牙关并更改架构,以便所有问题都消失(不只是一个他们)。

如果要将其保留为字符串类型,则使用的语法取决于您的DBMS。它可能是以下之一:

substring (column, start, length)           # substr for Oracle, I think.
substring (column FROM start for length)