在这个查询的最后部分遇到了一些问题。
我要找的是capvalue < desiredCapValue + 2。
这意味着如果capValue = 1,我将查找desiredCapValue等于或大于3的任何值。
SELECT instanceName, capacitySizeName, desiredCapacitySizeName, desiredCapValue, capvalue FROM
(SELECT instance_name AS instanceName, capacity_size_name AS capacitySizeName,
(CASE capacity_size_name WHEN 'small' THEN '1' WHEN 'medium' THEN '2' WHEN 'large' THEN '3' WHEN 'xlarge' THEN '4' WHEN 'xxlarge' THEN '5' WHEN 'mega' THEN '6' WHEN 'ultra' THEN '7' WHEN 'giga' THEN '8' WHEN 'tera' THEN '9' WHEN 'peta' THEN '10' END) AS `capValue`,
u_desired_capacity_size_name AS desiredCapacitySizeName,
CASE u_desired_capacity_size_name WHEN 'small' THEN '1' WHEN 'medium' THEN '2' WHEN 'large' THEN '3' WHEN 'xlarge' THEN '4' WHEN 'xxlarge' THEN '5' WHEN 'mega' THEN '6' WHEN 'ultra' THEN '7' WHEN 'giga' THEN '8' WHEN 'tera' THEN '9' WHEN 'peta' THEN '10' END AS `desiredCapValue`
FROM mysql_view
WHERE used_for = 'Production')A
WHERE capvalue < desiredCapValue+2 LIMIT 10提前感谢!
发布于 2019-10-25 03:21:10
您需要数字(而不是字符串)才能进行有效的算术求值和右大写< desiredCapValue+2比较
SELECT instanceName
, capacitySizeName
, desiredCapacitySizeName
, desiredCapValue
, capvalue
FROM (
SELECT instance_name AS instanceName
, capacity_size_name AS capacitySizeName
, (CASE capacity_size_name
WHEN 'small' THEN 1
WHEN 'medium' THEN 2
WHEN 'large' THEN 3
WHEN 'xlarge' THEN 4
WHEN 'xxlarge' THEN 5
WHEN 'mega' THEN 6
WHEN 'ultra' THEN 7
WHEN 'giga' THEN 8
WHEN 'tera' THEN 9
WHEN 'peta' THEN 10 END) AS `capValue`
, u_desired_capacity_size_name AS desiredCapacitySizeName
, CASE u_desired_capacity_size_name
WHEN 'small' THEN 1
WHEN 'medium' THEN 2
WHEN 'large' THEN 3
WHEN 'xlarge' THEN 4
WHEN 'xxlarge' THEN 5
WHEN 'mega' THEN 6
WHEN 'ultra' THEN 7
WHEN 'giga' THEN 8
WHEN 'tera' THEN 9
WHEN 'peta' THEN 10 END AS `desiredCapValue`
FROM mysql_view
WHERE used_for = 'Production'
) A
WHERE capvalue < desiredCapValue+2
LIMIT 10https://stackoverflow.com/questions/58547687
复制相似问题