以下是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])
任何建议都会有很大的帮助。感谢
答案 0 :(得分:0)
MS Access有时需要'。'要么 '!'使用表寻址列名时。奇怪的是它为什么这样做。但是当你在T-SQL中编写基于jet的查询时。 '!'可以用'。'代替。这解决了我的问题。它与我最初想到的T-SQL中的运算符无关。