sql - 如何转换为 varchar?
问题描述
我需要输出为 varchar 并且数字保存为 1 或 1.5 .... 但现在我的数字保存为 1.00000。我无法更改表格的设计,此字段可以是字符串或数字
所以,我尝试通过以下方式进行转换:
SELECT CAST( ISNULL( TRY_CAST( a.field AS FLOAT) , 'NAME') AS VARCHAR(MAX)) FROM #TABLEA a
我的想法是,如果它是一个数字,那么它将转换为浮点数,否则它将用'NAME'替换它
但是我得到错误:如果我用数字替换“名称”,则“将数据类型 varchar 转换为浮点数时出错”将不会出现错误。
有人对这个问题有任何想法吗?谢谢 !
解决方案
检查这个:
你正在尝试使用两种不同的类型。我建议使用 COALESCE,但是您会遇到同样的问题,因为它返回具有最高数据类型优先级的表达式的数据类型,而 FLOAT 是数据类型优先级中的上 VARCHAR 。所以,我的两分钱将用于这样的事情:
#If you can cast it, then use that field. Use "Name" otherwise.
SELECT (CASE WHEN TRY_CAST(a.field AS FLOAT) IS NOT NULL
THEN a.field ELSE 'NAME'
END)
FROM #TABLEA a;
推荐阅读
- node.js - aws/azure 无法为 React 应用程序运行构建
- java - 如何在 Android 上使用 VideoView 恢复上次停止的视频?
- python - 使用循环将 2 到 20 的表写入单独的文件中
- java - 当没有互联网时,我的facebook原生广告布局空白空间变成灰色而不是隐藏。在admanager类中有没有解决方案?
- flex-lexer - 有人可以在 flex-lexer 中解释 NFA 到 DFA 的转换吗?
- python - 当 dbprocess 死机或未启用时重新连接 pymssql 连接
- flutter - 参数类型 'void Function(Map
)' 不能分配给参数类型'Map ' - java - 为什么在我的情况下编写简单的 .xlsx 书很慢?
- asp.net-mvc - 如何修改 _loginPartial.cshtml 以显示自定义用户数据而不是 UserName?
- c++ - 有没有办法使用一个函数来替换 C++ 中的两个相似函数