我想知道在MS SQL Server 2005中是否有办法做到这一点:
DECLARE @theDate varchar(60)
SET @theDate = '''2010-01-01'' AND ''2010-08-31 23:59:59'''
SELECT AdministratorCode,
SUM(Total) as theTotal,
SUM(WOD.Quantity) as theQty,
AVG(Total) as avgTotal,
(SELECT SUM(tblWOD.Amount)
FROM tblWOD
JOIN tblWO on tblWOD.OrderID = tblWO.ID
WHERE tblWO.Approved = '1'
AND tblWO.AdministratorCode = tblWO.AdministratorCode
AND tblWO.OrderDate BETWEEN @theDate
)
... etc
这可能吗?
有可能,但是需要使用动态SQL。
我建议先阅读动态SQL的诅咒和祝福,然后再继续…
DECLARE @theDate varchar(60)
SET @theDate = '''2010-01-01'' AND ''2010-08-31 23:59:59'''
DECLARE @SQL VARCHAR(MAX)
SET @SQL = 'SELECT AdministratorCode,
SUM(Total) as theTotal,
SUM(WOD.Quantity) as theQty,
AVG(Total) as avgTotal,
(SELECT SUM(tblWOD.Amount)
FROM tblWOD
JOIN tblWO on tblWOD.OrderID = tblWO.ID
WHERE tblWO.Approved = ''1''
AND tblWO.AdministratorCode = tblWO.AdministratorCode
AND tblWO.OrderDate BETWEEN '+ @theDate +')'
EXEC(@SQL)
动态SQL只是一条SQL语句,在执行前由字符串组成。因此,通常的字符串连接发生。每当您想以不允许的SQL语法执行某些操作时,都需要使用动态SQL,例如:
EXEC sp_executesql
允许您使用bind / preparedstatement参数,因此您不必担心为SQL注入攻击转义单引号/
etc。
问题内容: 看看这里找到的这个片段 我可以在中了解到,它有一个名为的var ,它的类型是var ,但是那东西呢 在int之后?这是什么意思?谢谢。 问题答案: 这是一个结构标记。库使用它们来用额外的信息注释结构域;在这种情况下,模块encoding / xml 使用这些struct标签来表示哪些标签对应于struct字段。
问题内容: 这些声明和和之间有什么区别? 问题答案: 总是在堆上创建一个新对象 使用字符串池 试试这个小例子: 为避免在堆上创建不必要的对象,请使用第二种形式。
问题内容: 如何声明用于PostgreSQL 8.3查询的变量? 在MS SQL Server中,我可以这样做: 我如何在PostgreSQL中做同样的事情?根据文档,变量被简单地声明为“名称类型;”,但这给了我一个语法错误: 有人可以给我一个正确语法的例子吗? 问题答案: PostgreSQL中没有这样的功能。您只能在pl / PgSQL(或其他pl / *)中执行此操作,而不能在普通SQL中执
问题内容: 在Java中,当声明一个字符串变量时,单词“ String”被大写,但是我遇到的其他任何类型都不是(例如,“ int”或“ double”)。为什么是这样?设计师是否只是一些奇怪的任意决定? 问题答案: 为什么在Java中将字符串变量的声明大写? 该类型的资本,因为它是一个 类 ,象,而不是一个原始类型像或(其他类型,你可能跑过)。 作为一个类,遵循Sun提出的Java命名约定。简而言
本文向大家介绍VBA 声明一个字符串常量,包括了VBA 声明一个字符串常量的使用技巧和注意事项,需要的朋友参考一下 示例
问题内容: 是否有任何JavaScript库可以根据查询字符串,样式生成字典? 可以像这样使用的东西: “查询字符串”是否在.NET领域之外称为其他名称?为什么不分解为键/值集合? 编辑:我已经编写了自己的函数,但是任何主要的库都可以这样做吗? 问题答案: 是否有任何JavaScript库可以根据查询字符串,样式生成字典? 可以像这样使用的东西: “查询字符串”是否在.NET领域之外称为其他名称?