将MS Access追加查询迁移到SQL Server

时间:2014-11-10 15:46:09

标签: sql-server ms-access append

以下是MS Access中的追加查询。我必须将它迁移到SQL Server,我可以做。但我对“!”有疑问。用于从查询设计器生成的查询中。我无法理解设计视图。

INSERT INTO [TABLEX] ( COL1, COL2, COL3, COL4 )


SELECT [TableA].[COL1], [TableA].[COL2], [TableA].[COL5],

IIf(Left([COL3],4) In (YYYY,XXXX),"YYYY - XXXX --- XXXXXX",[Name]) AS Name

FROM [TableC], [TableA] INNER JOIN [TableB] ON [TableA].[COL1] = [TableB].[COL1]

WHERE (((Left([COL3],4))<>"XXXX" And (Left([COL3],4))<>"YYYY" And

(Left([COL3],4))=[TableC]![COL1]) AND (([TableC].COL2)="-") AND (([TableA].[COL4])<>"MMM")) OR 

(((Left([COL3],4))="XXXX" And (Left([COL3],4))=[TableC]![COL1]) AND (([TableC].COL2)="-") AND 

(([TableA].[COL4])="ZZZ")) OR (((Left([COL3],4))="YYYY" And (Left([COL3],4))=[TableC]![COL1]) AND (([TableC].COL2)="-"));

有人能让我知道T-SQL语句可以完成同样的工作吗?以下是它们出现的实例。

(左([COL3],4))= [表C]![COL1])

任何建议都会有很大的帮助。感谢

1 个答案:

答案 0 :(得分:0)

MS Access有时需要'。'要么 '!'使用表寻址列名时。奇怪的是它为什么这样做。但是当你在T-SQL中编写基于jet的查询时。 '!'可以用'。'代替。这解决了我的问题。它与我最初想到的T-SQL中的运算符无关。