如何在执行此sql查询时仅获取一个值?

bbuxkriu  于 2021-07-26  发布在  Java
关注(0)|答案(4)|浏览(384)

我正在使用测试查询的表。
我有3列,每个人都有自己的价格。
我想当我选择一个特定的列值,然后它显示我只有该列价格,而不是其他两列。

select Small_price,Medium_price,Large_price
from New_Item
where Sub_Category='Sub' or Small_price='' or  Medium_price='' or Large_price='300'

当我输入 large_price ='300' 当我执行它时,它只显示 large_price 不是其他两个 medium_price 以及 small_price .
有人来帮忙吗?

carvr3hs

carvr3hs1#

我不知道我是否理解这个问题,但是您可以通过只为结果集指定所需的列来编写任何sql查询:

select Large_price
from New_Item
where Sub_Category='Sub' or Small_price='' or  Medium_price='' or Large_price='300'

但是,也许您希望动态地生成一个查询,或者做一件您可以在问题中更好地解释的事情。
如果您是从sql开始的,我希望本教程可以帮助您享受查询的乐趣:
https://www.tutorialspoint.com/sql/index.htm

6gpjuf90

6gpjuf902#

你可以用 CASE..WHEN 语句读取特定列取决于您的输入参数。这里,我假设有三个不同的参数传递给这个sql,每个price类型一个参数。然而,这三个参数中只有一个在任何给定的时间点保持值。

select case when p_small_price is not null then , Small_price
when p_medium_price is not null then Medium_price
when p_large_price is not null then Large_price end as final_price
from New_Item
where Sub_Category='Sub' 
and (Small_price= p_small_price or  Medium_price= p_medium_price or Large_price= p_high_price)
olhwl3o2

olhwl3o23#

使用 declare 以及 set . 它生成一个变量 where 以及 select 可以是所需的相同值。

DECLARE @pricetype

SET @pricetype = 'large'

然后使用 @pricetypeselect 以及 where 部分。

mspsb9vt

mspsb9vt4#

你提出的问题对我来说似乎不太明智。我无法想象业务逻辑中,您希望所有记录都具有所有这些或条件,结构如下。您将得到三个列的许多不同值,我不确定结果的语义。
例如,对于一个结果行,如果它的价格大于等于300,那么您所知道的就是另一个价格=“”或子类别是“”。我不知道那有什么用。
可能我误解了,或者查询条件不是您真正想要的。

相关问题