You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TSQL查询结果替换需求:将6个缩写转换为对应全称

TSQL查询结果替换缩写为全称的解决方法

方法1:嵌套REPLACE函数批量替换

如果要替换的缩写不多(比如你提到的6个),直接用嵌套REPLACE就能快速实现,不用额外建表。假设你要替换的字段是abbr_column,示例代码如下:

SELECT 
    REPLACE(
        REPLACE(
            REPLACE(
                REPLACE(
                    REPLACE(
                        REPLACE(abbr_column, 'em', 'employee'),
                        'dpt', 'department'),
                    'mgr', 'manager'),
                'hr', 'human_resources'),
            'fin', 'finance'),
        'it', 'information_technology') AS full_name
FROM your_table;

每多一个缩写替换,就在外层多套一层REPLACE,顺序不影响,只要确保缩写和全称对应正确即可。

方法2:正确使用CASE WHEN语句

你之前用CASE没生效,大概率是写法不对。正确的CASE要针对字段值做精准匹配,示例代码:

SELECT 
    CASE abbr_column
        WHEN 'em' THEN 'employee'
        WHEN 'dpt' THEN 'department'
        WHEN 'mgr' THEN 'manager'
        WHEN 'hr' THEN 'human_resources'
        WHEN 'fin' THEN 'finance'
        WHEN 'it' THEN 'information_technology'
        ELSE abbr_column -- 保留未匹配到的原始值,避免空值
    END AS full_name
FROM your_table;

如果字段里的缩写有大小写差异(比如'EM'、'Em'),可以统一转成大写或小写再判断:

SELECT 
    CASE UPPER(abbr_column)
        WHEN 'EM' THEN 'employee'
        WHEN 'DPT' THEN 'department'
        -- 其他缩写同理
        ELSE abbr_column
    END AS full_name
FROM your_table;

进阶:用自定义映射表维护缩写(适合后续可能新增缩写的场景)

如果以后还要加更多缩写,建个映射表更方便维护:

-- 先建映射表
CREATE TABLE abbr_mapping (
    abbr VARCHAR(10) PRIMARY KEY,
    full_name VARCHAR(50) NOT NULL
);
-- 插入6个缩写的映射关系
INSERT INTO abbr_mapping VALUES
('em', 'employee'),
('dpt', 'department'),
('mgr', 'manager'),
('hr', 'human_resources'),
('fin', 'finance'),
('it', 'information_technology');

-- 查询时关联映射表
SELECT 
    COALESCE(m.full_name, t.abbr_column) AS full_name
FROM your_table t
LEFT JOIN abbr_mapping m ON t.abbr_column = m.abbr;

这样后续新增缩写,只要往映射表里插数据就行,不用改查询语句。

内容的提问来源于stack exchange,提问作者user21095720

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 17:45:29