我有一个event表,其中有两个字段名为sport,event\u name。这些价值观包括:
{体育:“竞技”;项目名称:“运动100米”}
我想要的是使用replace函数来替换事件名称中与sport中的字符串匹配的字符串。所以最终的结果是:
{体育:“竞技”;事件名称:“100米”}
我还将它与其他表连接起来,所以只有要替换的id也存在于其他表中,所以我在下面的代码中使用了这种方式。但它应该有一个错误:“预期项:”。谢谢您
SELECT
ae.id ,
ae.city AS event_city,
ae.sport,
REPLACE(ae.event,ae.sport,' ') AS event_name ,
FROM
athlete_events ae
inner join
players_personalinfo pp on
pp.id=ae.id
3条答案
按热度按时间zrfyljdw1#
您需要定义表别名:
我还建议您调整结果:
这将删除前导空格和尾随空格。
ntjbwcob2#
replace函数区分大小写。试着检查数据以确保每个的大写字母是相同的。
jjhzyzn03#
前面的答案有效,但您需要修改查询中的一个字段名。在描述中,您提到字段名是“event\u name”,但在查询中,您只引用了“event”(ae.event)。
另外,我有点惊讶,一个事件id会加入到一个球员的个人资料id。似乎有点奇怪。
不管怎样,我证实了这个sql在postgres和oracle数据库中都能工作。。。