![](/img/trans.png)
[英]SQL Server computed column is slowing down performance on a simple select statement
[英]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.