Моего поля в моем СКЕ таблицеИспользование подстроки, в ISNULL в TSQL возвращает неожиданное количество символов для поля
(BI.dbo.SKU.phl5)
является varchar(15)
Однако ниже кода возвращает только 3 символов 'Unc'
для нулевых полей в моей таблице в то время как он должен вернуть 'Uncategorized'
. Как это решить?
ISNULL(SUBSTRING(BI.dbo.SKU.phl5,0,3),'Uncategorized') AS phl1
Конечно, это возвращает только 3 символов, 'ISNULL' принимает два параметра и возвращает первый, если это не' NULL', в этом случае она возвращает второй. Поэтому, очевидно, если 'phl5' содержит« Без рубрики », вы вернете« Unc », так как ISNULL вернет результат подстроки. Пожалуйста, объясните логику того, что вы хотите (а не логика кода, логика «мышления», что вы хотите и почему) –
@ LasseV.Karlsen Но phl5 не содержит «Без рубрики», что я делаю, это то, что, когда phl5 не является нулевым, верните первый 3 символа, если он равен нулю, верните «Без рубрики», я попробовал это с указанным выше кодом. Однако, когда он равен нулю, приведенный выше код возвращает 'Unc' – HOY