Sql 用另一个表中的值替换字符串中出现的任何“P”
我在一个表中有一列sort_order,其中包含一个数字字符串、一个分隔符和一些p值: 1150 | p | 1168 | 1144 | 1149 | 1147 | 1164 | 1152 | p | 1148 | 1162 | 1163 | p | 1156 | 1157 1244|| 我想用另一个表的event_tile_id列中的另一个值替换该字符串中的任何p值 到目前为止,我在下面起草了这个SQL,但运气不好。我可以对此查询进行哪些更改以获得所需的效果Sql 用另一个表中的值替换字符串中出现的任何“P”,sql,Sql,我在一个表中有一列sort_order,其中包含一个数字字符串、一个分隔符和一些p值: 1150 | p | 1168 | 1144 | 1149 | 1147 | 1164 | 1152 | p | 1148 | 1162 | 1163 | p | 1156 | 1157 1244|| 我想用另一个表的event_tile_id列中的另一个值替换该字符串中的任何p值 到目前为止,我在下面起草了这个SQL,但运气不好。我可以对此查询进行哪些更改以获得所需的效果 `SELECT sort_orde
`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`
已从查询中删除默认的\u SaleID。Replace现在应该有4个参数。我将这样做 既然没有任何联接,为什么不使用静态值执行更简单的更新查询呢
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。按照与@Eric_Hauenstein相同的思维过程,如果您在TSQL过程中运行此过程:
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
哪个RMDB?如果是SQL Server,哪个版本?是的,我不知道替换函数如何接受四个参数。你说运气不好是什么意思?这是一个语法错误,一个一般的失败,鼻子恶魔吗?刚刚更新了Replace函数,使它有4个参数@DaaaahWhoosh@christiandev-不太确定。我在ExactTarget的查询工具中使用此查询,我知道它有一些SQL限制。这取决于您需要将输出格式化为什么,列表,替换等。。。两者都会起作用。更大的问题是您打算如何使用此替换代码。