Мне нужно преобразовать тип данных в текст для следующего утверждения. Может кто-нибудь, пожалуйста, помогите ...
CASE WHEN [OrderID] IS NULL THEN 'N' WHEN [Order_ID] = '' THEN 'N' ELSE [Order_ID] END AS [Order_ID]
Попробуйте преобразовать идентификатор заказа к varchar в ветви ELSE вашего выражения CASE:
varchar
ELSE
CASE
CASE WHEN COALESCE([Order_ID], '') = '' THEN 'N' ELSE CAST([Order_ID] AS VARCHAR(MAX)) END AS [Order_ID]
считают isnull()
isnull()
CASE WHEN isnull([OrderID], '') = '' THEN 'N' ELSE cast([Order_ID] as varchar(300)) END AS [Order_ID]
Вы также можете попробовать ниже:
CASE WHEN OrderID IS NULL THEN 'N' WHEN OrderID ='' THEN 'N' ELSE convert(varchar(20),OrderID ) END
Попробуйте этот альтернативный метод -
IIF(ISNULL([OrderID],'')='','N',CAST([OrderID] AS NVARCHAR(MAX))) AS [OrderID]