簡體   English   中英

SQL Server 2008上的PowerBuilder SQL-在SELECT中具有計算列的CASE語句

[英]PowerBuilder SQL on SQL Server 2008 - CASE statement with computed column in SELECT

我正在嘗試使用Microsoft的示例使用CASE語句創建計算列。

我將不勝感激任何幫助或指示!

相關的示例代碼為:

SELECT   
    ProductNumber, Category =  
      CASE ProductLine  
         WHEN 'R' THEN 'Road'  
         WHEN 'M' THEN 'Mountain'  
         WHEN 'T' THEN 'Touring'  
         WHEN 'S' THEN 'Other sale items'  
         ELSE 'Not for sale'  
    END,  
    Name  
FROM 
    Production.Product  
ORDER BY 
    ProductNumber;  
GO

我“想”我在下面做同樣的事情:

SELECT 
    Convert ( char(10),"") No,   
    Convert ( char(15),"") vendor,   
    car_type.car_type_desc,
    origin_st = 
        case voucher.pu_is_airport
            when 'F' then Convert( char(50),  rtrim(ltrim(operator_archive.pu_st_no)) + " " + rtrim(ltrim(operator_archive.pu_st_name)) )  
            else Convert( char(50), "")  
            end
        origin = 
        case voucher.pu_is_airport
            when 'F' then Convert( char(50),  rtrim(ltrim(operator_archive.pu_city)) + ", " + rtrim(ltrim(operator_archive.pu_county)))  
            else Convert( char(50),  rtrim(ltrim(operator_archive.pu_county))  
            end
         voucher.confirmation_no,   
         voucher.pu_is_airport,   
         operator_archive.dest_st_name  
FROM 
    voucher,   
    car_type,   
    operator_archive  
WHERE 
    (voucher.car_type = car_type.car_type_id) and  
    (operator_archive.confirmation_no = voucher.confirmation_no) and  
    ((dbo.voucher.pu_date_time >= :start_date) AND  
     (dbo.voucher.pu_date_time <= :end_date) AND  
     (dbo.voucher.account_no = :account) AND  
     (dbo.voucher.status_flag not in ('9','X','C','F')) AND  
    (dbo.voucher.payment_type in ('1','2','3','4','5','6','7','8')))    

但是服務器告訴我,我的錯誤如下:

SQLSTATE = 37000
[Microsoft] [ODBC SQL Server驅動程序] [SQL Server]'origin'附近的語法不正確。

我已經在'End'之后用逗號嘗試過,然后收到一條錯誤消息:

SQLSTATE = 37000
[Microsoft] [ODBC SQL Server驅動程序] [SQL Server]'end'附近的語法不正確。

感謝Lamak的評論,我能夠通過在'end'語句之后添加缺少的括號和逗號來解決此問題。 謝謝Lamak!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM