在where子句中将varchar转换为int [英] Convert varchar to int in a where clause
问题描述
伙计们!我试图在一个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屋!