在SQL文件中将值从一个字段移动到另一个字段

时间:2010-01-14 19:17:29

标签: sql replace

在我的数据库中,我在此字段中有一个名为“description”的列。描述开头有一个年龄:“Age 4+这是表格中此行的描述”。

我创建了一个名为'age'的专栏,我一直试图找出一种方法将年龄从一行中的描述移动到相应的年龄列。

我如何离开:

| id |   description   | age |
------------------------------------------------   
|  1 |  Age 4+ This... |     |
|  2 |  Age 7+ Once... |     |

要:

| id |   description   | age |
------------------------------------------------   
|  1 |  This...        |  4+ |
|  2 |  Once...        |  7+ |

另外:并非每一行都有描述中的年龄,但任何具有年龄的行都采用以下格式:'年龄x +'。

编辑:抱歉,我忘了添加数据库是MySQL 5.0.51a

1 个答案:

答案 0 :(得分:0)

使用Sql Server,您可以尝试类似

的内容
DECLARE @Table TABLE(
        ID INT,
        [description] VARCHAR(100),
        Age VARCHAR(10)
)

INSERT INTO @Table (ID, [description]) SELECT 1, 'Age 4+ This...'
INSERT INTO @Table (ID, [description]) SELECT 2, 'Age 7+ Once...'
INSERT INTO @Table (ID, [description]) SELECT 3, 'Foo...'

UPDATE @Table
SET [description] = REPLACE([description],LEFT([description],CHARINDEX(' ', [description], CHARINDEX(' ',[description])+1)), ''),
    Age = REPLACE(LEFT([description],CHARINDEX(' ', [description], CHARINDEX(' ',[description])+1)), 'Age ', '')
WHERE LEFT([description], 4) = 'Age '

SELECT *
FROm @Table