【问题标题】:How to convert Oracle to SQL Server如何将 Oracle 转换为 SQL Server
【发布时间】:2016-09-09 17:28:07
【问题描述】:

我想在 SQL Server 中转换为以下查询,但不知道应该如何处理。我是否应该使用 CASE 语句,因为我在该语句中看不到任何真/假条件。我该怎么办?谢谢!

ORACLE 查询:

IIF(CD_ID = '999999',TO_CHAR(CL_ID)  || TO_CHAR(CD_SEQ_NO)  ||  '999.99',TO_CHAR(CL_ID)  || TO_CHAR(CD_SEQ_NO)  ||  TO_CHAR(CD_ID))

【问题讨论】:

  • Oracle 支持IIF?
  • 这绝对是不是一个有效的 Oracle 查询。 Oracle中没有iif

标签: sql-server oracle if-statement iif case-statement


【解决方案1】:

SQL SERVER 2012+ 我们可以使用CONCAT 函数。

SELECT IIF(CD_ID = '999999',CONCAT(CD_SEQ_NO, '999.99'),CONCAT(CL_ID,CD_SEQ_NO,CD_ID))
FROM YOURTABLE

Concat 函数不仅可以连接字符串,还可以在需要时进行隐式转换

任何小于SQL SERVER 2012 的内容都使用CASE 语句与显式转换varchar

SELECT CASE 
         WHEN cd_id = '999999' THEN Cast(cd_seq_no AS VARCHAR(50)) + '999.99' 
         ELSE Cast(cl_id AS VARCHAR(50))+Cast(cd_seq_no AS VARCHAR(50))+Cast(cd_id AS VARCHAR(50))
       END 
FROM   yourtable 

【讨论】:

    猜你喜欢
    • 2022-01-13
    • 2019-03-01
    • 1970-01-01
    • 2017-02-09
    • 1970-01-01
    • 2022-01-12
    • 2021-06-14
    • 2018-04-15
    • 2012-11-04
    相关资源
    最近更新 更多