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

如何将SQL查询中的嵌套||连接运算符替换为CONCAT函数?

转换方案

原需替换的SQL片段

(( TIME .MONTH_EN || N' ') || cast( TIME .CURRENT_YEAR as varchar (4))) as Month__caption_, 
(( TIMEQUARTER.QUARTER_EN || N' ') || cast( TIME .CURRENT_YEAR as varchar (4))) as Quarter__caption_

转换后的SQL片段

CONCAT(CONCAT(TIME.MONTH_EN, N' '), cast(TIME.CURRENT_YEAR as varchar(4))) as Month__caption_, 
CONCAT(CONCAT(TIMEQUARTER.QUARTER_EN, N' '), cast(TIME.CURRENT_YEAR as varchar(4))) as Quarter__caption_

完整的转换后SQL语句

SQL_query="""
select 
    TIME.CURRENT_YEAR as Year1, 
    TIME.QUARTER_KEY as Quarter_key, 
    CONCAT(CONCAT(TIME.MONTH_EN, N' '), cast(TIME.CURRENT_YEAR as varchar(4))) as Month__caption_, 
    CONCAT(CONCAT(TIMEQUARTER.QUARTER_EN, N' '), cast(TIME.CURRENT_YEAR as varchar(4))) as Quarter__caption_ 
from [GOSALESDW].TIME TIME, [GOSALESDW].TIMEQUARTER TIMEQUARTER 
where (TIME.QUARTER_KEY = TIMEQUARTER.QUARTER_KEY) 
"""

额外小提示

其实多数支持CONCAT函数的SQL数据库(比如SQL Server)都允许直接传入多个参数,你也可以把嵌套的CONCAT简化成更简洁的形式,效果完全一致:

CONCAT(TIME.MONTH_EN, N' ', cast(TIME.CURRENT_YEAR as varchar(4))) as Month__caption_, 
CONCAT(TIMEQUARTER.QUARTER_EN, N' ', cast(TIME.CURRENT_YEAR as varchar(4))) as Quarter__caption_

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 11:12:46