0
我正在尝试使用an example from Microsoft创建CASE语句的计算列。SQL Server 2008上的PowerBuilder SQL - CASE语句中包含计算列SELECT
我会感谢任何帮助或指针!
相关的示例代码:
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]不正确的语法靠近'起源'。
我已经 '终结' 后的逗号试了一下,然后我得到一个错误,指出:
SQLSTATE = 37000
[微软] [ODBC SQL Server驱动程序] [SQL服务器]不正确'end'附近的语法。
哦,伙计,这里有很多问题。首先,要使用字符串,你需要使用单引号'Convert(char(50),'')'而不是双引号'Convert(char(50),“”)'(你必须在任何地方改变它。 ,'END'后绝对需要逗号,问题是,例如,你在这里丢失了一个圆括号:'Convert(char(50),rtrim(ltrim(operator_archive.pu_county))',它应该是'Convert (char(50),rtrim(ltrim(operator_archive.pu_county)))' – Lamak
这是我的第一篇文章,我的编译器允许使用单引号,但你对错过的')'是正确的。投票回应,但是谢谢,经过一个小时的尝试,我忘记了标点符号PEM – PEM
这是已解决,但不确定如何标记它PEM – PEM