我正在使用测试查询的表。
我有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
.
有人来帮忙吗?
4条答案
按热度按时间carvr3hs1#
我不知道我是否理解这个问题,但是您可以通过只为结果集指定所需的列来编写任何sql查询:
但是,也许您希望动态地生成一个查询,或者做一件您可以在问题中更好地解释的事情。
如果您是从sql开始的,我希望本教程可以帮助您享受查询的乐趣:
https://www.tutorialspoint.com/sql/index.htm
6gpjuf902#
你可以用
CASE..WHEN
语句读取特定列取决于您的输入参数。这里,我假设有三个不同的参数传递给这个sql,每个price类型一个参数。然而,这三个参数中只有一个在任何给定的时间点保持值。olhwl3o23#
使用
declare
以及set
. 它生成一个变量where
以及select
可以是所需的相同值。然后使用
@pricetype
在select
以及where
部分。mspsb9vt4#
你提出的问题对我来说似乎不太明智。我无法想象业务逻辑中,您希望所有记录都具有所有这些或条件,结构如下。您将得到三个列的许多不同值,我不确定结果的语义。
例如,对于一个结果行,如果它的价格大于等于300,那么您所知道的就是另一个价格=“”或子类别是“”。我不知道那有什么用。
可能我误解了,或者查询条件不是您真正想要的。