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

SQL字符串替换:将查询结果中数字'2'替换为'factura'的方法

解决SQL查询中替换特定列值的问题

嘿,这个需求很好实现!你可以用SQL里的CASE表达式或者REPLACE函数来搞定,我给你两种具体方案,你可以根据实际情况选:

方案一:用CASE表达式(推荐,精准匹配单一值)

如果Cust.[Document Type]只有值为'2'时需要替换成'factura',其他值保持原样,CASE表达式是最稳妥的选择。修改后的查询语句如下:

SELECT 
  Detail.[Entry No_], 
  'Cliente' AS Tipo, 
  Cust.[Customer No_] AS Cliente, 
  Detail.[Posting Date] AS DATA, 
  Detail.[Document No_] AS Documento, 
  Detail.[Amount (LCY)] AS Valor, 
  -- 核心替换逻辑
  CASE 
    WHEN Cust.[Document Type] = '2' THEN 'factura'
    ELSE Cust.[Document Type]
  END AS LiqPorTipo, 
  Cust.[Document No_] AS LiqPorNDocumento, 
  '97' AS Conta, 
  'MR' AS Loja, 
  'SUPER' AS Utilizador, 
  'MR01' AS [你的列名] -- 记得补全原语句里的列名哦
-- 实际使用时别忘了补上FROM和JOIN关联条件
FROM [明细表明] Detail
JOIN [客户表明] Cust ON Detail.[关联字段] = Cust.[关联字段]

这种方法的好处是灵活,以后要是需要替换其他值,直接加WHEN条件就行。

方案二:用REPLACE函数(替换所有出现的特定字符串)

如果Cust.[Document Type]里只要出现'2'就需要替换(比如值是'22'会变成'facturafactura'),可以用REPLACE函数:

SELECT 
  Detail.[Entry No_], 
  'Cliente' AS Tipo, 
  Cust.[Customer No_] AS Cliente, 
  Detail.[Posting Date] AS DATA, 
  Detail.[Document No_] AS Documento, 
  Detail.[Amount (LCY)] AS Valor, 
  -- 替换逻辑
  REPLACE(Cust.[Document Type], '2', 'factura') AS LiqPorTipo, 
  Cust.[Document No_] AS LiqPorNDocumento, 
  '97' AS Conta, 
  'MR' AS Loja, 
  'SUPER' AS Utilizador, 
  'MR01' AS [你的列名]
FROM [明细表明] Detail
JOIN [客户表明] Cust ON Detail.[关联字段] = Cust.[关联字段]

注意:如果Document Type是数字类型,得先转成字符串再用REPLACE,比如REPLACE(CAST(Cust.[Document Type] AS VARCHAR(10)), '2', 'factura')。

内容的提问来源于stack exchange,提问作者Cátia Matos

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:31:54