首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >此值显示SQL Server的该列的值时的情况

此值显示SQL Server的该列的值时的情况
EN

Stack Overflow用户
提问于 2018-03-22 11:06:52
回答 1查看 46关注 0票数 0

我正在尝试弄清楚我的CASE逻辑。如果FABRIC RANGE列的值等于_SPECIAL,则显示Description列的值。

所以,我们现在得到的信息如下:

代码语言:javascript
复制
PO NUMBER            FABRIC RANGE                   DESCRIPTION
P18030096           Fiesta Indigo            Indigo   
P18030097           _SPECIAL                 Dolly Denim
P18030098           Quantum Nebula           Nebula
P18030098           _SPECIAL                 Dolly Magenta

我们希望看到的是给出这样的结果:

代码语言:javascript
复制
  PO number            Fabric Range                Description
P18030096           Fiesta Indigo                Indigo   
P18030097           Dolly Denim                  Dolly Denim
P18030098           Quantum Nebula               Nebula
P18030098           Dolly Magenta                Dolly Magenta

我的代码是:

代码语言:javascript
复制
SELECT   dbo.PO.PONo AS [PO Number], 
                     dbo.ReceivingDetails.ItemVendorNumber AS [Fabric Range], dbo.ReceivingDetails.Description

我知道我需要在什么时候放案例,但这可能是一个好主意:

EN

回答 1

Stack Overflow用户

发布于 2018-03-22 11:10:46

列名ItemVendorNumber没有任何意义,因为它不是一个数字,但我看到这正是您在示例查询中使用的。PO.PONo也是如此(除非这是您的文字列名[PO.PONo]?)

代码语言:javascript
复制
SELECT PO.PONo [PO Number]
    ,CASE WHEN rd.[ItemVendorNumber] = '_SPECIAL'
            THEN rd.[DESCRIPTION]
        ELSE rd.[ItemVendorNumber]
        END [FABRIC RANGE]
    ,rd.[Description]
FROM ReceivingDetails rd

这是一个[DEMO]

测试设置:

代码语言:javascript
复制
CREATE TABLE ReceivingDetails ([PO.PONo] VARCHAR(50)
                               , ItemVendorNumber VARCHAR(100)
                               , Description VARCHAR(500))

INSERT INTO ReceivingDetails
VALUES ('P18030096','Fiesta Indigo','Indigo'),  
       ('P18030097','_SPECIAL','Dolly Denim'),
       ('P18030098','Quantum Nebula','Nebula'),
       ('P18030098','_SPECIAL','Dolly Magenta')


--verify
SELECT * FROM ReceivingDetails

--results OP asked for
SELECT [PO.PONo] [PO Number], CASE 
        WHEN rd.[ItemVendorNumber] = '_SPECIAL'
            THEN rd.[DESCRIPTION]
        ELSE rd.[ItemVendorNumber]
        END [FABRIC RANGE], rd.[Description]
FROM ReceivingDetails rd

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

https://stackoverflow.com/questions/49419882

复制
相关文章

相似问题

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