我尝试过这样的事情:
select PREPRO = case when (isnumeric(PREPRO) = 1 and
PREPRO in ('0','1','-1')) or
convert(varchar, PREPRO) in ('True','False')
then convert(bit, convert(integer, PREPRO)) else 'No' end
from dbo.TI10SE
Run Code Online (Sandbox Code Playgroud)
PREPRO包含所有"False".
我收到此错误:
将nvarchar值'False'转换为数据类型int时转换失败.
这是否意味着nvarchar无法转换为整数?我猜是因为有些数据可能会丢失.
您正在尝试将您的转换PREPRO为整数,即使它保存的值是True或False:
convert(integer, PREPRO)
Run Code Online (Sandbox Code Playgroud)
您无法将值转换为False整数.
when子句中的条件求值为true,当PREPRO数字为0,1,-1 时,或者当它计算为True或时False.在任何这些情况下,您都尝试将此值转换为整数然后转换为位.
| 归档时间: |
|
| 查看次数: |
2775 次 |
| 最近记录: |