首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL查询,仅在以下情况下才选择列的值

SQL查询,仅在以下情况下才选择列的值
EN

Stack Overflow用户
提问于 2013-05-08 10:42:42
回答 2查看 9.1K关注 0票数 3

我正在使用SLQ服务器2005。

我有这个表,因为我注册了一个创建“订单”的项目列表,这些项目将被发送到仓库,这样他们就知道需要发回什么。

这是我的代码。

代码语言:javascript
复制
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'

我需要的是,在stocks列中,只有当项目的种类为X时,才会显示​​。当它们的种类不是X时,如何显示stocks列中所有null的行,以及当种类为X时,如何显示值?

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-08 10:51:21

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

代码语言:javascript
复制
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'
票数 3
EN

Stack Overflow用户

发布于 2013-05-08 10:46:09

我将使用SQL Case语句,该语句可用于有条件地返回值

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16431834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档