在where子句中将varchar转换为int [英] Convert varchar to int in a where clause

查看:92
本文介绍了在where子句中将varchar转换为int的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

伙计们!我试图在一个where子句中将varchar的变量转换为int,但每次我尝试时都会收到一条错误消息:'将varchar值'总位数'转换为数据类型int时转换失败。'





有人可以帮帮我吗?



谢谢!



我尝试过:



select * from(选择制造商为'Maker' ,命名为'Name',输入'Type',start_date为'End Date',model_date为'Model',CASE TYPE WHEN'NARROW'THEN(N_N_SEATS_SECTOR_L + N_N_SEATS_SECTOR_R)* N_ROWS ELSE(W_N_SEATS_SECTOR_C + W_N_SEATS_SECTOR_L + W_N_SEATS_SECTOR_R)* N_ROWS END为'总座位数',CASE TYE'NARROW'THEN(N_N_SEATS_SECTOR_L + N_N_SEATS_SECTOR_R)* N_ROWS_w ELSE(W_N_SEATS_SECTOR_C + W_N_SEATS_SECTOR_L + W_N_SEATS_SECTOR_R)* N_ROWS_w END为'飞机座位数' )a cast('总座位数'为int)> = 20 0

Hi, guys! I am trying to conver a variable that is varchar to int in a where clause, but every time I try I get an error message: 'Conversion failed when converting the varchar value 'Total Number of Seats' to data type int.'


can anyone help me??

thanks!

What I have tried:

select * from ( select maker as 'Maker', name as 'Name', type as 'Type', start_date as 'Start Date', end_date as 'End Date', model as 'Model', CASE TYPE WHEN 'NARROW' THEN (N_N_SEATS_SECTOR_L+N_N_SEATS_SECTOR_R)*N_ROWS ELSE (W_N_SEATS_SECTOR_C+W_N_SEATS_SECTOR_L+W_N_SEATS_SECTOR_R)*N_ROWS END as 'Total Number of Seats', CASE TYPE WHEN 'NARROW' THEN (N_N_SEATS_SECTOR_L+N_N_SEATS_SECTOR_R)*N_ROWS_w ELSE (W_N_SEATS_SECTOR_C+W_N_SEATS_SECTOR_L+W_N_SEATS_SECTOR_R)*N_ROWS_w END as 'Number of Seats Class' from aircraft) a where cast( 'Total Number of Seats' as int) >= 200

推荐答案

总座位数是一个不是数字的字符串文字,不能转换为数字。



尝试不在名称中使用空格,更改;



(W_N_SEATS_SECTOR_C + W_N_SEATS_SECTOR_L + W_N_SEATS_SECTOR_R)* N_ROWS END为'总座位数'



To;



(W_N_SEATS_SECTOR_C + W_N_SEATS_SECTOR_L + W_N_SEATS_SECTOR_R)* N_ROWS END为Total_Number_of_Seats



然后:



其中强制转换(Total_Number_of_Seats为int)> = 200
"Total Number of Seats" is a string literal that is not numeric, it cannot be converted to a number.

Try not using spaces in your names, change;

(W_N_SEATS_SECTOR_C+W_N_SEATS_SECTOR_L+W_N_SEATS_SECTOR_R)*N_ROWS END as 'Total Number of Seats'

To;

(W_N_SEATS_SECTOR_C+W_N_SEATS_SECTOR_L+W_N_SEATS_SECTOR_R)*N_ROWS END as Total_Number_of_Seats

Then:

where cast(Total_Number_of_Seats as int) >= 200


这篇关于在where子句中将varchar转换为int的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆