如何移除SQL查询结果部分返回行首的'-'符号
SQL移除查询结果行首'-'符号的解决方案
你可以直接在现有查询的基础上对输出字段做加工,以下是不同场景下的可用方案:
方案1:使用LTRIM移除开头连续'-'
适合PostgreSQL、SQL Server、MySQL 8.0及以上版本,可一次性移除字符串开头所有连续的'-',不会影响字符串中间的符号:
LTRIM(COALESCE( dim_Study_Type.classical_intelerad_study_description, '' ), '-') AS Classical_Intelerad_Study_Description,
方案2:使用正则替换(通用性更强)
几乎所有支持正则函数的主流数据库都可使用,逻辑为匹配字符串开头的所有连续'-'并删除:
REGEXP_REPLACE(COALESCE( dim_Study_Type.classical_intelerad_study_description, '' ), '^-+', '') AS Classical_Intelerad_Study_Description,
正则说明:^匹配字符串起始位置,-+匹配1个或多个连续的'-'
方案3:老版本SQL兼容方案
如果数据库不支持上述两种函数,可使用判断+截取的逻辑,仅移除开头单个'-':
CASE WHEN LEFT(COALESCE(dim_Study_Type.classical_intelerad_study_description, ''), 1) = '-' THEN SUBSTRING(COALESCE(dim_Study_Type.classical_intelerad_study_description, ''), 2) ELSE COALESCE(dim_Study_Type.classical_intelerad_study_description, '') END AS Classical_Intelerad_Study_Description,
内容的提问来源于stack exchange,提问作者user17170756
相关产品推荐
相关产品推荐

