【问题标题】:SQL concat select count and varcharSQL concat 选择计数和 varchar
【发布时间】:2026-02-05 04:40:02
【问题描述】:

我目前正在将用户定义函数上的SELECT COUNT (column)varchar 结合起来,如下所示:

'Express 24: ' + (SELECT COUNT(Product) FROM [DHL].[dbo].[F_SubBetsy](@startdate, @enddate, 'EXPRESS EXPRESS 24', @contract, @account)) +
'\r\nExpress 48: ' + (SEL...

我收到了错误:

将 varchar 值 'Express 24:' 转换为数据类型 int 时转换失败。

大概SELECT COUNT 正在返回一个intvarchar 不如一个int,但尽管多次尝试,我还没有想出如何将CAST( AS NVARCHAR())VARCHAR() 与SELECT COUNT 正确结合。

谁能帮我解决这个问题?

干杯

【问题讨论】:

    标签: sql sql-server sql-server-2008 count concatenation


    【解决方案1】:
    'Express 24: ' + CAST(
        (
        SELECT  COUNT(Product) 
        FROM    [DHL].[dbo].[F_SubBetsy](@startdate, @enddate, 
                                        'EXPRESS EXPRESS 24', @contract, @account) 
        ) as varchar(16)) +
    '\r\nExpress 48: ' + (SEL...
    

    【讨论】:

    • 效果很好,不知道为什么需要用额外的括号括起来,但是谢谢:D
    • 额外的括号计算 SQL 查询。所以(select 1) 是包含单列的单行。但是select 1是一个查询,不允许作为cast的参数。