1

我的 SKU 表中的字段

(BI.dbo.SKU.phl5)varchar(15)

然而,下面的代码只'Unc'为我的表中的空字段返回 3 个字符,而它应该返回'Uncategorized'。如何解决?

ISNULL(SUBSTRING(BI.dbo.SKU.phl5,0,3),'Uncategorized') AS phl1
4

2 回答 2

4
ISNULL(CAST(SUBSTRING(BI.dbo.SKU.phl5,0,3) AS VARCHAR(13)),'Uncategorized') AS phl1

SUBSTRING 的返回类型的大小没有明确记录,我可以找到,但问题是 ISNULL 的类型是第一个表达式的类型,因为你正在截断它,所以很明显返回为 VARCHAR(3)到 3 个字符。

ISNULL 文档

于 2013-06-05T08:34:24.943 回答
0

试试这个

CASE WHEN BI.dbo.SKU.phl5 IS NULL THEN 'Uncategorized' 
     ELSE SUBSTRING(BI.dbo.SKU.phl5,0,3) 
END AS phl1   
于 2013-06-05T08:38:33.347 回答