SQL Server查询错误与“对象或列名称丢失或为空”'

时间:2014-07-28 15:23:35

标签: sql sql-server

我在SQL Server的存储过程中有以下查询:

SELECT  TLI.LESNumber
    ,COUNT(TLT.PL)
INTO #PWCM
FROM #tmpLESImport TLI
INNER JOIN tbl_LES L 
    on TLI.LESNumber=L.NUMB
WHERE ISNULL(L.DELT_FLAG,0)=0
    AND L.SCHL_PK=@SCHL_PK
    AND TLI.PL IS NOT NULL
    AND LEN(TLI.PL)>0
GROUP BY LESNumber 
HAVING COUNT(PL)>1

运行查询时出现以下错误:

An object or column name is missing or empty. For SELECT INTO statements, verify each column has a name. For other statements, look for empty alias names. Aliases defined as "" or [] are not allowed. Change the alias to a valid name.

谁能告诉我为什么?在此查询之前,#PWCM不会出现在任何地方。

2 个答案:

答案 0 :(得分:15)

当你SELECT INTO表时,它会创建表(在本例中为临时表)。要创建表格,每列都需要一个名称,而count列则不需要。你只需要给它一个名字:

SELECT  TLI.LESNumber,COUNT(TLT.PL) [NumRecords]
INTO #PWCM
FROM #tmpLESImport TLI
...

答案 1 :(得分:7)

此查询出现此错误

SELECT 
CASE WHEN COALESCE([dbo].[my-table].[field],"") = '...' THEN 'A' 
     WHEN COALESCE([dbo].[my-table].[field],"") = '...' THEN 'B' 
     ...
     END AS aaa  INTO ##TEMPTABLE
FROM [dbo].[my-table]

原来我必须将COALSCE内的""更改为''

为我解决了