【问题标题】:SQL query, select values of a column only ifSQL查询,仅在以下情况下选择列的值
【发布时间】:2013-05-08 02:42:42
【问题描述】:

我正在使用 SLQ 服务器 2005。

我有这张表,如果我注册了一个创建“订单”的项目列表,它将被发送到仓库,以便他们知道需要发回什么。

这是我的代码。

id_pedido=id_order, id_articulo=id_item, descripcion=description, fecha=date, nombre=employee name, local=store, (inicia+entra+sale) Existencias=stocks, tipo=Kind, --estado=state, activo=active.--

select id, id_pedido, p.id_articulo, p.descripcion, p.fecha, u.nombre, p.local,a.inicia+a.entra-a.sale as Existencias, a.tipo
from pedidos p join usuarios u on p.id_usuario=u.id_usuario join articulos a on a.id_articulo=p.id_articulo
where estado='activo'

我需要的是,股票列的值仅在项目的种类为 X 时显示。当它们的种类不是 X 时,我如何在股票列中显示所有带有 null 的行,当种类不是时显示值是X吗?

这是因为客户只希望员工知道这些物品的库存,而不是所有其他物品的库存。

【问题讨论】:

    标签: sql sql-server select sql-server-2005-express


    【解决方案1】:

    您可以使用CASE 将tipo 列与所需的值进行比较:

    select id, 
       id_pedido, 
       p.id_articulo, 
       p.descripcion, 
       p.fecha, 
       u.nombre, 
       p.local,
       case when a.tipo = 'X' then a.inicia+a.entra-a.sale end Existencias, 
       a.tipo
    from pedidos p 
       join usuarios u on p.id_usuario=u.id_usuario 
       join articulos a on a.id_articulo=p.id_articulo
    where estado='activo'
    

    【讨论】:

    • 非常感谢!!!,我不知道如何使用 case 以及何时使用它,我喜欢我们每天学习新东西的方式。
    • @EdgarHolguin -- np,很高兴我们能帮上忙!
    【解决方案2】:

    我会使用可用于有条件返回值的 SQL Case 语句

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-19
      • 1970-01-01
      • 2012-05-17
      • 1970-01-01
      • 1970-01-01
      • 2023-01-26
      相关资源
      最近更新 更多