我需要按照一些規則給我寫一個SEO朋友格式的歌曲標題。SQL Server:字符串操作來寫出搜索引擎優化友好標題
最大lentgh是52個字符。目前截斷髮生在以CL開始的記錄上,並且與一組關聯ID有關。
額外的規則我要申請是:
- 如果seo_friendly_title以結束「 - 」將其刪除。
- 如果 截斷在單詞或空格的中間結束,則移至下一空格(下一個單詞的結尾) 。
我想我必須添加嵌套的CASE
語句才能完成此操作,但我不知道在哪裏添加這個新檢查。
我想請求你幫忙完成這個算法,希望有人可以分享他們的經驗,並展示/解釋如何做到這一點。
非常感謝。
這裏是我當前的SQL查詢:
SELECT
[sfwt].[seo_friendly_title]
, CASE
WHEN [sfwt].[pf_id] LIKE 'CL%' AND [pd].[AssociationID] IN (1, 3, 4) THEN
LEFT([sfwt].[seo_friendly_title], 52)
END [seo_final_title]
FROM
[dbo].[SEOFriendly_WorkingTable] [sfwt]
INNER JOIN [dbo].[ProductData] [pd]
ON [pd].[ProductID] = [sfwt].[pf_id]
WHERE [sfwt].[pf_id] LIKE 'CL%'
ORDER BY
[sfwt].[pf_id];
和輸出:
seo_friendly_title seo_final_title
prelude-no-5-for-trumpet-and-piano-johann-sebastian-bach prelude-no-5-for-trumpet-and-piano-johann-sebastian-
prelude-no-8-for-trumpet-and-piano-johann-sebastian-bach prelude-no-8-for-trumpet-and-piano-johann-sebastian-
highlights-from-the-lord-of-the-rings-the-return-of-the-king highlights-from-the-lord-of-the-rings-the-return-of-
air-ecossais-spirituoso-e-marciale-opus-107-no-10-f-instrument-piano air-ecossais-spirituoso-e-marciale-opus-107-no-10-f-
air-ecossais-spirituoso-e-marciale-opus-107-no-10-c-instrument-piano air-ecossais-spirituoso-e-marciale-opus-107-no-10-c-
air-de-la-petite-russie-opus-107-no-3-bb-instrument-piano air-de-la-petite-russie-opus-107-no-3-bb-instrument-
air-de-la-petite-russie-opus-107-no-3-eb-instrument-piano air-de-la-petite-russie-opus-107-no-3-eb-instrument-
shell-be-coming-round-the-mountain-c-instrument-and-piano shell-be-coming-round-the-mountain-c-instrument-and-
shell-be-coming-round-the-mountain-f-instrument-and-piano shell-be-coming-round-the-mountain-f-instrument-and-
9-ecossaises-from-38-waltzer-landler-und-ecossaisen-op-18 9-ecossaises-from-38-waltzer-landler-und-ecossaisen-
我打算用這個作爲出發點,當我取得進展時,我可能會提出一個新問題。謝謝拉胡爾。 –