我在sql查询中编写了一个小的case语句,如下所示:
SELECT [##OT_NET_EQUATIONS_RHS_IDS].SYS_ID,
[##OT_NET_EQUATIONS_RHS_IDS].NODE_ID,
[##OT_NET_EQUATIONS_RHS_IDS].NODE_EQ_NO,
[##OT_NET_EQUATIONS_RHS_IDS].EQ_TYPE,
CASE EQ_TP_OFFSET
WHEN 'MULTIPLE' THEN '1'
WHEN 'SINGLE' THEN '0'
END AS EQ_TP_OFFSET,
[##OT_NET_EQUATIONS_RHS_IDS].VAR_NAME,
[##OT_NET_EQUATIONS_RHS_IDS].VAR_SET,
[##OT_NET_EQUATIONS_RHS_IDS].VAR_SUBSET,
[##OT_NET_EQUATIONS_RHS_IDS].RHS_NODE_ID,
[##OT_NET_EQUATIONS_RHS_IDS].RHS_NODE_VAR_ID,
CASE RHS_RELN
WHEN 'EQ' THEN '0'
WHEN 'LE' THEN '1'
WHEN 'GE' THEN '2'
WHEN 'MIN' THEN '3'
WHEN 'MAX' THEN '4'
END AS RHS_RELN,
[##OT_NET_EQUATIONS_RHS_IDS].RHS_OBJECT,
[##OT_NET_EQUATIONS_RHS_IDS].RHS_VAR_TYPE,
[##OT_NET_EQUATIONS_RHS_IDS].RHS_TP_OFFSET,
[##OT_NET_EQUATIONS_RHS_IDS].TIME_PRD,
[##OT_NET_EQUATIONS_RHS_IDS].RHS_VALUE,
[##OT_NET_EQUATIONS_RHS_IDS].SUB_NET_ID,
CASE RHS_OBJECT
WHEN 'OBJECTIVE' THEN 'OBJECTIVE'
END AS FUNC_NAME
FROM ##OT_NET_EQUATIONS_RHS_IDS;我收到错误,无法将变量字符值'multiple‘转换为数据类型int...any帮助。?我不确定为什么我会得到这个错误,尽管我已经放了一个'‘。
发布于 2011-10-08 12:50:57
我猜EQ_TP_OFFSET是一个int,所以当Sql Server计算CASE时,它会尝试将'MULTIPLE与EQ_TP_OFFSET的值进行比较,但无法将其转换为int。
再看一遍,我在想,也许EQ_TP_OFFSET是一个int,您的意思是编写case以选择一个比1和0更有意义的值。也许它应该是另一种方式?
CASE EQ_TP_OFFSET
WHEN 1 THEN 'MULTIPLE'
WHEN 0 THEN 'SINGLE'
END AS EQ_TP_OFFSETRHS_RELN也是如此。
https://stackoverflow.com/questions/7694879
复制相似问题