SQL解码函数(我只想解码其中的几个)

SQL解码函数(我只想解码其中的几个),sql,oracle,decode,decoding,Sql,Oracle,Decode,Decoding,这就是故事, SELECT STOCK_TABLE.Product_Name From STOCK_TABLE 内部产品名称包含: 衬衫 牛仔裤 帽 T恤衫 所以我想改变产品名称中项目的内容,只要我知道我们可以使用解码来解决这个问题,但问题是我只想解码一些主题(牛仔裤和帽子),而不是全部。因此,我使用: SELECT DECODE(STOCK_TABLE.Product_Name, 'Jeans', 'PJ1', 'Cap','PC1') as "Product Name" From

这就是故事,

SELECT STOCK_TABLE.Product_Name
From STOCK_TABLE 
内部产品名称包含:

  • 衬衫
  • 牛仔裤
  • T恤衫
所以我想改变产品名称中项目的内容,只要我知道我们可以使用解码来解决这个问题,但问题是我只想解码一些主题(牛仔裤和帽子),而不是全部。因此,我使用:

SELECT
  DECODE(STOCK_TABLE.Product_Name, 'Jeans', 'PJ1', 'Cap','PC1') as "Product Name"
From
  STOCK_TABLE
然后结果出来的只是PJ1(过去是牛仔裤)和PC1(过去是帽子)。

问题是,我希望它的其余部分(T恤和衬衫)也能出来,但要有它原来的名字。

那我该怎么做呢?这是否可能使用decode加上一些我错过的函数,或者我们必须使用另一个SQL函数?

decode
是一个不错的函数,但很快就无法读取(当然,从个人角度来看)

你完全可以用一个箱子。。。WHEN(该子句的作用相同,但当您有多个
if-else
子句时,通常更易于阅读)


DECODE
是一个不错的功能,但很快就不可读了(当然,从个人角度来看)

你完全可以用一个箱子。。。WHEN(该子句的作用相同,但当您有多个
if-else
子句时,通常更易于阅读)

试试这个:

SELECT CASE 
         WHEN Product_Name = 'Jeans' THEN 'PJ1'
         WHEN Product_Name = 'Cap' THEN 'PC1'
         ELSE Product_Name
       END as "Product Name" 
  FROM STOCK_TABLE
试试这个:

SELECT CASE 
         WHEN Product_Name = 'Jeans' THEN 'PJ1'
         WHEN Product_Name = 'Cap' THEN 'PC1'
         ELSE Product_Name
       END as "Product Name" 
  FROM STOCK_TABLE

我同意case表达式更易于阅读和维护,但如果您遇到DECODE,您应该了解它的结构与case表达式非常相似

SELECT
DECODE(STOCK_TABLE.Product_Name
                               , 'Jeans', 'PJ1'
                               , 'Cap','PC1'
                               , Product_Name
      ) as "Product Name"
From
STOCK_TABLE


我同意case表达式更易于阅读和维护,但如果您遇到DECODE,您应该了解它的结构与case表达式非常相似

SELECT
DECODE(STOCK_TABLE.Product_Name
                               , 'Jeans', 'PJ1'
                               , 'Cap','PC1'
                               , Product_Name
      ) as "Product Name"
From
STOCK_TABLE


只要马上试试就行了,你知道,这真的帮了大忙。我很感激。非常感谢你
DECODE()
是的,完全同意案例陈述。嗯,是的,实际上我经常使用DECODE,因为在我公司的软件中,当我在查询编辑器中键入时,“DECODE”字会变为另一种颜色,当我尝试键入时,它不会变为任何颜色,只是黑色,所以我担心它不会工作(反正我是个新手)。但是当很多人说我们可以像@RaphaëlAlthaus说的那样使用用例时,我只是尝试了一下,它就工作了,所以问题现在解决了,源数据的名称与其他数据相同。谢谢你们。无论如何,如果你不介意回答,在什么情况下,我们真的需要使用解码?只要马上尝试,它就会工作,你知道,这真的是一个很大的帮助。我很感激。非常感谢你
DECODE()
是的,完全同意案例陈述。嗯,是的,实际上我经常使用DECODE,因为在我公司的软件中,当我在查询编辑器中键入时,“DECODE”字会变为另一种颜色,当我尝试键入时,它不会变为任何颜色,只是黑色,所以我担心它不会工作(反正我是个新手)。但是当很多人说我们可以像@RaphaëlAlthaus说的那样使用用例时,我只是尝试了一下,它就工作了,所以问题现在解决了,源数据的名称与其他数据相同。谢谢你们。不管怎样,如果你不介意回答,在什么情况下我们真的需要使用解码?给我们看一个输入和输出给我们看一个输入和输出