小编tsq*_*00b的帖子

在 CASE 语句中使用 CHARINDEX 和 SUBSTRING

我需要用 CASE 语句评估一个字段。字段名称是 Commodity 并且是一个 varchar(255)。值不同,我需要在特定字符之后从中提取特定部分。字符是“>”。通过使用以下代码,我能够想出我想要在 > 之后返回的值:

SUBSTRING(Commodity, CHARINDEX('>', Commodity) + 2, LEN(Commodity))
Run Code Online (Sandbox Code Playgroud)

但是,我不确定如何将其应用到我的 CASE 语句中。我需要测试是否为空,然后只为它分配一个“无商品”的值。然后我需要测试 > 的存在,然后实现上面的代码以返回值。然后我需要测试什么时候没有 > 但它不为空并且只返回 Commodity 字段的值。

sql-server substring case sql-server-2012 charindex

4
推荐指数
1
解决办法
1万
查看次数

在T-SQL中使用SUM和ISNULL与WHERE子句

我没有从下面的查询中获得预期的结果.我期待收回5,262条记录,而我只得到4,279条记录.我知道问题出在WHERE子句中.当我注释掉WHERE子句时,我得到了预期的记录数,但是数量不正确,因为我需要在Type字段上进行过滤.有什么建议?

SELECT
    a.Part,
    SUM(ISNULL(b.Qty,0)) AS Sales_Qty
FROM
    dbo.Parts a
    LEFT OUTER JOIN dbo.Sales b ON b.Part = a.Part
WHERE
    b.Type = 'O'
GROUP BY
    a.Part
ORDER BY
    a.Part
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server

0
推荐指数
1
解决办法
419
查看次数

标签 统计

sql-server ×2

case ×1

charindex ×1

sql-server-2012 ×1

substring ×1

t-sql ×1