在SQL Server中使用Oracle的解码功能

本文介绍了如何在SQL Server中使用Oracle的解码函数。

在Oracle中,解码函数用于实现if-then-else类型的要求。
Decode功能在SQL Server中不可用。
在Oracle中,解码函数的语法是:

SELECT DECODE("ColumnName","Search_Data_1","result1",...."SearchData_n","result_n" )

其中search_data是要搜索的值,result 是代替 Search_Data 显示的值。

例子:

创建表

CREATE TABLE BOOK

(

      [Id] int IDENTITY(1,1) NOT NULL,

      [Name] nvarchar(50) NULL,

      [Author] nvarchar(50) NULL,

      [Price] decimal(18, 2) NULL,

PRIMARY KEY CLUSTERED

(

      [Id] ASC

)

)

插入一些数据

insert into BOOK

select  'ASP.NET 4.0 UNLEASHED','Stephen Walther',600 union all        

select  'DATA STRUCTURES','SEYMOUR LIPSCHUTZ',300 union all    

select  'jQuery UI','Eric Sarrion',200

select * from BOOK

在SQL Server中实现DECODE 函数如下所示:

select case when Author='Stephen Walther' then 1

when Author='SEYMOUR LIPSCHUTZ' then 2

when Author='Eric Sarrion' then 3

else 0 end as Author

from BOOK
日期:2020-06-02 22:18:12 来源:oir作者:oir