如何根据 mySQL 中的另一列选择一列?
Posted
技术标签:
【中文标题】如何根据 mySQL 中的另一列选择一列?【英文标题】:How could I select a column based on another column in mySQL? 【发布时间】:2019-04-24 05:16:13 【问题描述】:以下脚本运行良好。但我想用一行而不是三行来写。 “Size”是从我的主程序传递过来的,在这里用于测试。我只是想根据尺寸获取价格。
表格列: LISTING_ID、PRICE_LARGE_PRICE、PRICE_SMALL_PRICE。
SET @Size = 'SMALL';
SELECT
PRICE_LARGE_PRICE,PRICE_SMALL_PRICE
INTO
@PRICE_LARGE_PRICE,@PRICE_SMALL_PRICE
FROM
prices
WHERE
PRICE_LISTING_ID = 60;
SET @ITEM_PRICE = (CASE @Size WHEN 'REGULAR' THEN @PRICE_LARGE_PRICE
WHEN 'SMALL' THEN @PRICE_SMALL_PRICE
ELSE null
END);
SELECT @ITEM_PRICE;
感谢任何帮助。
【问题讨论】:
【参考方案1】:以下可能有效。
SET @Size = 'SMALL';
SELECT
PRICE_LARGE_PRICE,
PRICE_SMALL_PRICE,
CASE WHEN @Size = 'REGULAR' THEN PRICE_LARGE_PRICE
WHEN @Size = 'SMALL' THEN PRICE_SMALL_PRICE
END AS ITEM_PRICE
INTO
@PRICE_LARGE_PRICE,
@PRICE_SMALL_PRICE,
@ITEM_PRICE
FROM
prices
WHERE
PRICE_LISTING_ID = 60;
【讨论】:
【参考方案2】:我想你想要
SELECT
IF(@size == 'SMALL', PRICE_SMALL_PRICE, PRICE_LARGE_PRICE) AS ITEM_PRICE
FROM prices;
【讨论】:
以上是关于如何根据 mySQL 中的另一列选择一列?的主要内容,如果未能解决你的问题,请参考以下文章
如何根据 PySpark 数据框的另一列中的值修改列? F.当边缘情况