T-SQL中的If-Else语句

dva*_*ria 0 sql t-sql sql-server syntax

我正在尝试更改当前显示的Transact-SQL(MS SQL Server)报告的结果:

CompanyA     DVCE3
CompanyB     DVCE2
CompanyC     DVCE3
CompanyD     NULL 
CompanyE     DVCE3
Run Code Online (Sandbox Code Playgroud)

而我希望它显示:

CompanyA     36
CompanyB     24
CompanyC     36
CompanyD      
CompanyE     36
Run Code Online (Sandbox Code Playgroud)

我确定这个问题的答案是使用某种if/else语句或case语句,但我不确定T-SQL中的语法或它应该放在我的查询中.

我的基本查询如下所示:

SELECT
   companyName
   , term
FROM tableA a
   JOIN tableB b on a.id = b.id ...
WHERE 
   customerNumber IS NOT NULL
   AND companyName != 'TEST'... ;
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.

Joe*_*ips 5

用以下内容替换"term"字段:

CASE WHEN term='DVCE3' THEN '36' WHEN term='DVCE2' THEN '24' ELSE '' END as term
Run Code Online (Sandbox Code Playgroud)

为了便于阅读,我会重写它:

CASE
    WHEN term='DVCE3' THEN '36'
    WHEN term='DVCE2' THEN '24'
    ELSE ''
END as term
Run Code Online (Sandbox Code Playgroud)

  • @dvanaria - SQL在转换为数字时出于某些奇怪的原因将''转换为0.将所有数字放在单引号中,例如"36",以便将该列视为字符串. (2认同)