【发布时间】:2015-02-04 10:09:37
【问题描述】:
我有以下 SQL 语句:
SELECT
RTRIM(LTRIM(REPLACE(LAGKART.VARENUMMER,CHAR(2),''))) AS ItemNo,
RTRIM(LTRIM(REPLACE(LAGKART.SXSON,CHAR(2),''))) AS Season,
ISNULL(RTRIM(LTRIM(REPLACE(LAGKART.VARIANT1,CHAR(2),''))),'') AS Variant1,
ISNULL(RTRIM(LTRIM(REPLACE(LAGKART.VARIANT2,CHAR(2),''))),'') AS Variant2,
(SELECT *
FROM [dbo].[B2BGetSpringFinal] ( LAGKART.VARENUMMER,
LAGKART.VARIANT1,
LAGKART.VARIANT2
)) AS SpringAvailable
FROM
LAGKART
但我收到此错误:
消息 170,第 15 级,状态 1,第 8 行
'.' 附近的语法不正确。
但是如果我用固定值调用函数:
SELECT
RTRIM(LTRIM(REPLACE(LAGKART.VARENUMMER,CHAR(2),''))) AS ItemNo,
RTRIM(LTRIM(REPLACE(LAGKART.SXSON,CHAR(2),''))) AS Season,
ISNULL(RTRIM(LTRIM(REPLACE(LAGKART.VARIANT1,CHAR(2),''))),'') AS Variant1,
ISNULL(RTRIM(LTRIM(REPLACE(LAGKART.VARIANT2,CHAR(2),''))),'') AS Variant2,
(SELECT *
FROM [dbo].[B2BGetSpringFinal] ( '6261',
'Black',
'S'
)) AS SpringAvailable
FROM
LAGKART
我得到了想要的结果。
有什么想法吗?
溴 疯子
【问题讨论】:
-
那是什么方言? TSQL?它看起来有点古怪,但对 bt mysql 来说还不够疯狂。无论如何,我很确定你不能像那样将结果列拉到子选择中。也许你想要一个 CTE?
-
这是 T-SQL 认为你是对的,我不能在子选择中使用结果列。
标签: sql sql-server function select sql-server-2000