如何使用tSQL匹配并删除两个字符串中任何一个之后的所有内容?
如何使用tSQL查找两个字符串中的一个,如果它们存在,则返回查找字符串之前的所有内容 在ETL过程中,我们如何从源中获取列,识别字符串?uniquecode=或/uniquecode=,从而在sink列的SELECT语句中删除这些字符串以及它们之后的所有内容?i、 e.匹配以下预期结果 在上,我获得了一个解决方案,该解决方案成功地找到了?uniquecode=。我只需要找到一种方法来修改它,同时查找/uniquecode=如何使用tSQL匹配并删除两个字符串中任何一个之后的所有内容?,tsql,Tsql,如何使用tSQL查找两个字符串中的一个,如果它们存在,则返回查找字符串之前的所有内容 在ETL过程中,我们如何从源中获取列,识别字符串?uniquecode=或/uniquecode=,从而在sink列的SELECT语句中删除这些字符串以及它们之后的所有内容?i、 e.匹配以下预期结果 在上,我获得了一个解决方案,该解决方案成功地找到了?uniquecode=。我只需要找到一种方法来修改它,同时查找/uniquecode= SELECT CASE WHEN CHARINDEX('?unique
SELECT
CASE WHEN CHARINDEX('?uniquecode=', SourcePageURL) > 0
THEN SUBSTRING(SourcePageURL,
1,
CHARINDEX('?uniquecode=', SourcePageURL) - 1)
ELSE SourcePageURL END AS new_source
FROM sql_test;
您可以按如下方式修改当前查询:
SELECT
CASE WHEN SourcePageURL LIKE '%?uniquecode=%'
THEN SUBSTRING(SourcePageURL,
1,
CHARINDEX('?uniquecode=', SourcePageURL) - 1)
WHEN SourcePageURL LIKE '%/uniquecode%'
THEN SUBSTRING(SourcePageURL,
1,
CHARINDEX('uniquecode=', SourcePageURL) - 1)
ELSE SourcePageURL END AS new_source
FROM sql_test;
您可以按如下方式修改当前查询:
SELECT
CASE WHEN SourcePageURL LIKE '%?uniquecode=%'
THEN SUBSTRING(SourcePageURL,
1,
CHARINDEX('?uniquecode=', SourcePageURL) - 1)
WHEN SourcePageURL LIKE '%/uniquecode%'
THEN SUBSTRING(SourcePageURL,
1,
CHARINDEX('uniquecode=', SourcePageURL) - 1)
ELSE SourcePageURL END AS new_source
FROM sql_test;
嗨,菲尔,我在下面写了一个答案。正如你所看到的,这个查询与你的第一个问题有很大的不同,这就是为什么仅仅给出一个新的答案不那么有效。如您所见,该查询与您的第一个问题大不相同,这就是为什么仅仅给出一个新的答案不太好。再次感谢@TimBiegeleisen,这非常有效,非常感谢!再次感谢@TimBiegeleisen,非常感谢!