如何从文本字符串中仅删除一个连字符

问题描述 投票:0回答:1

我想就我当前的 sql 查询运行 intp 的一个小问题寻求一些帮助。

我将来自 RSS feed 的会议名称插入表格中。 将会议名称插入表格时,我将名称格式设置为如下所示:

    INSERT INTO dbo.Meeting
    SELECT 
        a.MeetingID
        --e.g. Board of Public Works - January 24, 2024  << REMOVE THE DATE
    ,   FORMAT(a.MeetingDate,'MM/dd/yyyy hh:mm tt') + ' - ' + LEFT(a.MeetingName, CHARINDEX('-', a.MeetingName) - 1) MeetingName
    ,   MeetingTitle
    FROM

我最终得到的会议名称如下:

11/20/2024 05:00 PM - Transportation Commission 
11/20/2024 04:30 PM - Board of Public Works 
11/18/2024 05:30 PM - Plan Commission 
11/18/2024 04:30 PM - Finance Committee 

来自 RSS Feed 的名称包含两个连字符,例如:

City-County Homeless Issues Committee - December 2, 2024

当会议名称包含两个连字符时,我最终会得到如下会议名称:

MeetingName (formatted name)  MeetingTitle (original name)
12/22/2024 04:30 PM - City    City-County Homeless Issues Committee - December 22, 2024
11/14/2024 03:30 PM - City    City-County Homeless Issues Committee - November 14, 2024

如何更改代码,以便可以使用带有连字符的城市-县部分,但仍然删除日期之前的连字符,因为它来自 rss feed?

我希望我的问题很清楚,如果不清楚,请告诉我。如有任何帮助,我们将不胜感激。

谢谢你, 伊拉斯莫

sql sql-server
1个回答
0
投票

删除会议名称中最后一个破折号后的所有文本

INSERT INTO dbo.Meeting
SELECT 
        a.MeetingID
        --e.g. Board of Public Works - January 24, 2024  << REMOVE THE DATE
    ,   FORMAT(a.MeetingDate,'MM/dd/yyyy hh:mm tt') + ' - ' + LEFT(a.MeetingName, Len(a.MeetingName)-CHARINDEX('-', Reverse(a.MeetingName))  ) MeetingName
    ,   MeetingTitle
    FROM a

小提琴

会议ID 会议名称 会议标题
1 2024年11月20日 05:00 下午 - 交通委员会
2 2024年11月20日下午4:30 - 公共工程委员会
3 2024年11月18日下午5:30 - 计划委员会
4 2024年11月18日下午4:30 - 财务委员会v 标题4
5 12/02/2024 08:00 上午 - 市县无家可归问题委员会v标题5
© www.soinside.com 2019 - 2024. All rights reserved.