Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 将case语句的数据类型转换为文本_Sql_Sql Server_Tsql_Case - Fatal编程技术网

Sql 将case语句的数据类型转换为文本

Sql 将case语句的数据类型转换为文本,sql,sql-server,tsql,case,Sql,Sql Server,Tsql,Case,我需要将以下语句的数据类型转换为文本。有人能帮忙吗 CASE WHEN [OrderID] IS NULL THEN 'N' WHEN [Order_ID] = '' THEN 'N' ELSE [Order_ID] END AS [Order_ID] 尝试将订单ID强制转换为CASE表达式的ELSE分支中的varchar: CASE WHEN COALESCE([Order_ID], '') = '' THEN 'N' ELSE CAST([Order

我需要将以下语句的数据类型转换为文本。有人能帮忙吗

CASE WHEN [OrderID] IS NULL THEN 'N'
     WHEN [Order_ID] = '' THEN 'N'
     ELSE [Order_ID] END AS [Order_ID]

尝试将订单ID强制转换为
CASE
表达式的
ELSE
分支中的
varchar

CASE WHEN COALESCE([Order_ID], '') = ''
     THEN 'N'
     ELSE CAST([Order_ID] AS VARCHAR(MAX)) END AS [Order_ID]
考虑
isnull()


试试这个替代方法-

IIF(ISNULL([OrderID],'')='','N',CAST([OrderID] AS NVARCHAR(MAX))) AS [OrderID]

您也可以尝试以下方法:

CASE WHEN OrderID IS NULL THEN 'N'
          WHEN OrderID  ='' THEN 'N'
          ELSE convert(varchar(20),OrderID ) END 

,合并时的case([Order\u ID]为null)然后合并时的'N'([Order\u ID]='')然后'N'else强制转换([Order\u ID]作为文本结尾为[Order\u ID]什么是
某物
?您能看到这有什么错误吗:,合并时的case([Order\u ID]为null)然后合并时的'N'([Order\u ID]='')然后再强制转换为'N'else([Order\u ID]作为文本)结束为[Order_ID]合并:按顺序计算参数,并返回最初未计算为NULL的第一个表达式的当前值。例如,选择合并(NULL,NULL,'第三个_值','第四个_值');返回第三个值,因为第三个值是第一个不为null的值。非常感谢您尝试帮助我,但我仍然得到了错误(highiting“Then”),:,case when isnull([OrderID],“”)=然后'N'else cast([OrderID]as varchar(300))以[OrderID]结尾这应该是
isnull([OrderID],“”)如果你找到了一个有用的答案,请考虑通过点击左边的灰色复选标记来接受答案。它奖励回答了一些信誉点的人,并且得到一些,TouMy数据流是:Excel模板(数据类型:数字)加载表(列FDATA类型:Nvarchar(10)表)。(格式化为数据类型的特定列:Nvarchar(10)模板数据字段仅包含“Y”或“N”,但由于错误,此字段已格式化为“数字”,现在我们无法对模板进行任何更改。我担心的是,如果用户输入任何数字或任何其他字符,SQL表不应接受它,因此我希望将数据类型转换为“Text”。在您的答案中,它转换为varchar(10),您能告诉我是应该将它转换为“Text”字段还是“varchar(10)”字段吗?文本是好的:如果您需要在数据库中存储大文本;如果您不搜索列的值;如果您很少选择此列并不对其进行联接。VARCHAR是好的:如果您存储小字符串;如果您搜索字符串值;如果您总是选择它或在联接中使用它。Nvarchar存储UNICODE数据。如果您需要存储UNICODE或多语言数据时,可以选择nvarchar。Varchar存储ASCII数据,并且应该是您正常使用时选择的数据类型。因此更改为nvarchar(MAX)而不是Varchar(100)
CASE WHEN OrderID IS NULL THEN 'N'
          WHEN OrderID  ='' THEN 'N'
          ELSE convert(varchar(20),OrderID ) END