Golang SQL查询语法
在golang代码中使用sql查询获取语法错误。golang中此SQL查询所需的正确语法:Golang SQL查询语法,go,Go,在golang代码中使用sql查询获取语法错误。golang中此SQL查询所需的正确语法: rows, errQuery := dbCon.Query("SELECT B.LatestDate ,A.SVRName AS ServerName ,A.DRIVE ,A.TotalSpace_GB AS TotalSpaceGB ,(ISNULL(A.TotalSpace_GB, 0) - ISNULL(A.FreeSpace_GB, 0)) AS UsedSpaceGB ,A.
rows, errQuery := dbCon.Query("SELECT B.LatestDate
,A.SVRName AS ServerName
,A.DRIVE
,A.TotalSpace_GB AS TotalSpaceGB
,(ISNULL(A.TotalSpace_GB, 0) - ISNULL(A.FreeSpace_GB, 0)) AS
UsedSpaceGB
,A.FreeSpace_GB AS FreeSpaceGB
,CASE
WHEN ((A.FreeSpace_GB / A.TotalSpace_GB) * 100) between 25 and
35
THEN 1
WHEN ((A.FreeSpace_GB / A.TotalSpace_GB) * 100) <= 25 THEN 2
ELSE 0
END AS WARNINGSTATUS
FROM Table_ServerDiskSpaceDetails A WITH (NOLOCK)
INNER JOIN (
SELECT SVRName
,MAX(Dt) LatestDate
FROM Table_ServerDiskSpaceDetails WITH (NOLOCK)
GROUP BY SVRName
) B ON A.Dt = B.LatestDate
AND A.SVRName = B.SVRName
ORDER BY WARNINGSTATUS DESC
,ServerName
,A.Drive")
行,errQuery:=dbCon.Query(“选择B.LatestDate
,A.SVRName作为服务器名
,A.DRIVE
,A.TotalSpace_GB作为TotalSpaceGB
,(ISNULL(A.TotalSpace_GB,0)-ISNULL(A.FreeSpace_GB,0))作为
UsedSpaceGB
,A.FreeSpace_GB作为FreeSpaceGB
案例
当((A.FreeSpace_GB/A.TotalSpace_GB)*100)介于25和
35
那么1
当((A.FreeSpace\u GB/A.TotalSpace\u GB)*100)您的SQL语句位于多行上,但您没有使用正确的多行语法。正确的语法为:
someLongString := "Line 1 " + // Don't forget the trailing space
"Second line." // This is on the next line.
目前,您只是尝试在不同行上的一组引号之间填充所有内容
编辑:正如@Kaedys在下面所说的,下面的方法同样有效,而且可能更有效
someLongString := `Line 1
Second line.`
将第一行和最后一行的“\”都更改为“`”,或者在查询字符串的每一行上加引号,然后在每一行之间加一个“+”,如
"select" +
" *" +
" from" +
" table"
语法错误是什么?您是否尝试过在控制台上运行查询(它通常会告诉您错误在哪里)?您运行的是哪种SQL变体(MySQL、Postgres等)?这是在SQL Management Studio/Console上运行的mssql查询,但与golang无关,在该SQL查询中出现语法错误。或者,您可以使用反勾号来注释字符串文字。在这种情况下,新行会得到正确处理。这也避免了在连接大量字符串时出现的性能问题。@Kaedys True,that还保留了所有换行符换行符,这是需要注意的。SQL对空格并不特别敏感,但最好记住这一点。