我在表格中有一列 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个参数。
答案 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