Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何重新排列数据_Sql - Fatal编程技术网

Sql 如何重新排列数据

Sql 如何重新排列数据,sql,Sql,我有一张这样的桌子:- Item Model ------------------------ A 10022009 B 10032006 C 05081997 我需要将模型列重新排列/转换为以下格式:- Item Model ------------------------ A 20090210 B 20060

我有一张这样的桌子:-

Item            Model
------------------------
A               10022009
B               10032006
C               05081997
我需要将模型列重新排列/转换为以下格式:-

Item            Model
------------------------
A               20090210
B               20060310
C               19970805
模型列为字符


谢谢

您可以尝试以下方法

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

你可以试试下面的方法

UPDATE MyTable
SET Model = substr(Model, 5, 4) + substr(Model, 3, 2) + substr(Model, 1, 2)
正确的方法是,假设这些是日期字段(它们看起来确实很像),将数据放入
date
类型列,而不是字符串类型列

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

通常情况下,我会建议使用子字符串进行简单的文本更改,但是,因为您无论如何都要更改数据,所以最好的做法是咬紧牙关,更改模式,以便所有问题都消失(而不仅仅是其中一个问题)

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

substring (column, start, length)           # substr for Oracle, I think.
substring (column FROM start for length)
正确的方法是,假设这些是日期字段(它们看起来确实很像),将数据放入
date
类型列,而不是字符串类型列

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

通常情况下,我会建议使用子字符串进行简单的文本更改,但是,因为您无论如何都要更改数据,所以最好的做法是咬紧牙关,更改模式,以便所有问题都消失(而不仅仅是其中一个问题)

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

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