我的 SKU 表中的字段
(BI.dbo.SKU.phl5)
是varchar(15)
然而,下面的代码只'Unc'
为我的表中的空字段返回 3 个字符,而它应该返回'Uncategorized'
。如何解决?
ISNULL(SUBSTRING(BI.dbo.SKU.phl5,0,3),'Uncategorized') AS phl1
我的 SKU 表中的字段
(BI.dbo.SKU.phl5)
是varchar(15)
然而,下面的代码只'Unc'
为我的表中的空字段返回 3 个字符,而它应该返回'Uncategorized'
。如何解决?
ISNULL(SUBSTRING(BI.dbo.SKU.phl5,0,3),'Uncategorized') AS phl1
ISNULL(CAST(SUBSTRING(BI.dbo.SKU.phl5,0,3) AS VARCHAR(13)),'Uncategorized') AS phl1
SUBSTRING 的返回类型的大小没有明确记录,我可以找到,但问题是 ISNULL 的类型是第一个表达式的类型,因为你正在截断它,所以很明显返回为 VARCHAR(3)到 3 个字符。
试试这个
CASE WHEN BI.dbo.SKU.phl5 IS NULL THEN 'Uncategorized'
ELSE SUBSTRING(BI.dbo.SKU.phl5,0,3)
END AS phl1