替换任何" P"在字符串中使用另一个表中的值

时间:2014-12-16 19:57:17

标签: sql

我在表格中有一列 sort_order ,其中包含一串数字,一个分隔符和一些 P 值:

1150 || P || || 1168 1144 1149 || || || 1147 1164 1152 || || || P 1148 || || 1162 1163 || P || || 1156 1157 | | 1154 ||

我想将此字符串中的任何 P 值替换为另一个表的 event_tile_id 列中的其他值。

到目前为止,我已经在下面起草了这个SQL而没有运气。我可以对此查询进行哪些更改以获得我需要的效果?

`SELECT sort_order, 
(
    REPLACE(sort_order,'P', 
        (SELECT TOP 1 event_tile_id 
        FROM daily_email_sales_today) 
    )
)
as sort_order    
FROM daily_email_preview`

从Query中删除了“default_SaleID”。替换现在应该有4个参数。

2 个答案:

答案 0 :(得分:0)

我就是这样做的。

由于您没有任何联接,为什么不使用静态值进行更简单的更新查询?

DECLARE @update VARCHAR(100)
SET @update = (SELECT TOP 1 event_tile_id FROM daily_email_sales_today)

update daily_email_preview

SET sort_order = replace(sort_order,'P', @update)

甚至,

update daily_email_preview

SET sort_order = replace(sort_order,'P', '<new value>')

假设您使用的是SQL Server。

答案 1 :(得分:0)

如果您在TSQL流程中运行它,则与@Eric_Hauenstein一样的思考过程:

declare @rSTR as varchar(50)

SELECT TOP 1 @rSTR = event_tile_id FROM daily_email_sales_toda

SELECT sort_order, REPLACE(sort_order,'P', @rSTR) as sort_order    
FROM daily_email_preview