我有一个带有参数@Region的SQL Server2012查询。有一个WHERE子句,我想根据@Region值设置它的值。下面是我尝试使用的代码 case
when @Region = 'SW'
then Transact.busloc_id in (3, 7, 11)
else Transact.busloc_id in (1, 5, 7)
end
我面临的问题是,SQL IN操作符不能处理C#中的多个标量变量值,而查询在Server 2012中工作。
这是行之有效的:
SELECT WorkStatus
FROM viewWorkRequest
WHERE WorkStatus IN ('Open', 'Closed')
但它在C#不起作用
string All = "'Open','Closed'";
string sql = "SELECT WorkStatus FROM viewWorkRequest WHERE WorkStatus I
我有一个动态查询,它可能以编程方式生成一千多个where子句,每个子句都可以类似于(列a= '1‘和b= '2’),且变化不大。我可以知道一个Sql查询中的这么多条件是否会有性能问题吗?列a是varchar,没有创建索引。它查询的表很大,并由另一列c进行分区。非常感谢。它是Sql server 2012。
我在SQL server2012中有以下查询,当整个查询运行时,它运行得很好,但是内部查询没有单独运行,因为AdviceRecordID不属于tblB。
SELECT DISTINCT SubLOBID
FROM tblA
WHERE AdviceRecordID
IN (SELECT AdviceRecordID
FROM tblB
)
第一种情况下,整个查询都在运行,根本不考虑where条件,没有任何错误地返回所有结果,这对我来说很奇怪。
我在asp.net C#中使用Server 2005。
我的站点上有一个具有不同参数的搜索查询。
fromAge as tinyint
toAge as tinyint
fromHeight as tinyint
toHeight as tinyint
gender as tinyint
withImage as bit
region as tinyint
astrologicaSign as tinyint
我从第一次获得这些参数,use执行搜索,并将他的搜索首选项保存在搜索表中,然后在Users表上使用它们,从中选择满足需求的用户。
Problem是一些值可以是有条件的,例如withIma
我有一个返回数据的存储过程。
我需要根据传入的参数更改where子句。
例如,参数为:
@Region NVARHCAR(15)
@CountryCode NVARCHAR(2)
@ProductA BIT
@ProductB BIT
@ProductC BIT
如果传入@ region,则where应按地区选择,如果传入@CountryCode,则where应按国家代码选择。
对于产品,如果它们中的任何一个设置为true,则where应为该项目选择数据。
因此,如果传入@Region并将@ProductA和@ProductC设置为true,则语句可能如下所示:
SELECT *
FROM t
我们在这里有一个大型查询,它有几个参数,对于每个参数,查询只与where子句的一部分不同,如下所示:
CASE WHEN @IncludeNames = 1 AND @NameFilter IS NULL THEN
(SELECT blah FROM blahBlah
INNER JOIN ...
INNER JOIN ...
INNER JOIN ...
WHERE blahBlah.Id = x.Id)
WHEN @IncludeNames = 1 AND @NameFilter IS NOT NULL THEN
(SELECT blah FROM bla
我有一个使用以下结构的T-SQL查询(SQL Server 2008/2012):
WHERE (@param1 IS NULL OR column1 = @param1)
AND (@param2 IS NULL OR column2 = @param2)
AND (@param3 IS NULL OR column3 = @param3)
这可以很好地工作,并自动优化WHERE子句中带有NULL参数的and‘’ed部分。
但是,当我对子查询执行同样的操作时,优化器似乎仍然执行子查询,即使参数为NULL:
WHERE
(@param1 IS NULL OR column1 IN (
所以这比你典型的
strSQL = "sql string where & forms!myform.variable & "stuff"
我有一个表,它会改变,用户会给它添加新的年份。因此,明年将是新的2015年数据。我为每年创建了一个带有复选框的表单,这个表单是基于这个sql的。
select year from table group by year
如果用户将复选框标记了若干年,我希望根据用户复选框的选择在vba中编写一个查询。例如,假设我现在有3年,2012年,2013年,2014年,用户只标记2012年和2014年,跳过2013年看起
我正在努力学习sql,我得到了这个错误--这意味着什么?
我想:让那些GDP高于欧洲任何国家的国家?
错误:
MicrosoftSQL ServerSubquery返回的值超过一个。当子查询跟随=、!=、<、<=、>、>=或子查询用作表达式时,这是不允许的。(SQL-21000)
select name, gdp from bbc
where gdp >
(
select gdp from bbc
where region = 'Europe'
)
在我的新工作中,我发现SQL Server 2008 Enterprise中的分区视图如下所示:
...
SELECT *
FROM [SERVER1].DATA_2012_7_1.dbo.DATA WITH (nolock)
WHERE DateTime >= '2012-07-01' AND DateTime <= '2012-07-15 23:59:59.997'
UNION ALL
SELECT *
FROM [SERVER2].DATA_2012_7_16.dbo.DATA WITH (nolock)
WHERE
如何强制SQL Server首先计算子查询?
我的查询类似于:
SELECT ObjectId FROM
(SELECT ObjectId FROM Table Where Id = @Id) T
WHERE fn_LongRunningFunction(T.ObjectId) = 1
我希望外部where子句对内部查询的结果求值。如何在不将子查询插入到临时表中的情况下执行此操作。
当我执行这个查询时,SQL会对查询求值,就好像它的代码是这样的:
SELECT ObjectId FROM Table Where Id = @Id AND fn_LongRunningFunction(Objec
我有要求获得记录的总数以及分页。目前,我正在SQL Server 2012中执行下面列出的操作。这需要一个单独的查询来获取计数。SQL Server 2012中是否有任何改进的方法?
ALTER PROCEDURE dbo.tpGetPageRecords
(
@OffSetRowNo INT,
@FetchRowNo INT,
@TotalCount INT OUT
)
AS
SELECT CSTNO, CSTABBR
FROM DBATABC
WHERE CSTABBR LIKE 'A%'
ORDER BY CSTNO
OFFSET
我尝试在动态SQL查询中使用SSRS中的多值参数。在静态查询中,我将使用
SELECT myField
FROM myTable
WHERE myField IN (@myParameter)
使用我尝试过的这个问题的答案()
-- SSRS requires the output field names to be static
CREATE TABLE #temp
(
myField VARCHAR(100)
)
DECLARE @myQuery VARCHAR(5000) = 'SELECT myField
INTO #temp
FROM myTable
WHERE
我得到了一个sql server错误,不知道如何修复它,我在带有nvarchar(30)类型的视图'Products‘中得到了一个列'NAME’,查询是在代码中动态生成的,所以不能完全更改它。
我得到了“算术溢出错误,将nvarchar转换为数据类型数字”。对于以下查询:
select * FROM Products WHERE NAME=12.0
但是,以下查询工作正常:
select * FROM Products WHERE NAME=112.0
我对这个错误感到很困惑,我知道我应该在数字周围加上引号,但我只想知道第二个查询为什么工作,以及有什么设置可以使第一个查询工
在我们的生产环境中,我们有几台带有SQL server 2012 SP2+Windows Server 2008R2的服务器。3个月前,我们将所有服务器迁移到SQL Server 2014 SP1+Windows Server 2012 R1。我们用新的配置(更多的RAM、更多的CPU、更多的磁盘空间)创建了新的服务器,并从SQL Server 2012 ->恢复到新的SQL Server 2014服务器上备份数据库。还原后,我们将兼容性级别从110更改为120+Rebuild Index+Update统计信息。
但是现在我们遇到了几个查询的问题,当兼容性级别为120时,这些查询运行得非
我使用的是VB.net 2013和SQL Server 2012。我有一个包含两列EmployeeName和Date的表tblEmployeeInfo
EmployeeName Date
--------------------
Jay Null
Mike Null
Paul Null
当我在Textbox1中输入一个日期值(如3/20/2017 )时,它会将该值插入到列Date的所有行中。
EmployeeName Date
-------------------------
Jay 3/20/201
我使用的是sql-server 2012,在更新表时有一个奇怪的问题。
我的select查询返回树行,如下所示:
select * from
TAble1 p join
(select ProductId=max(ProductId) from Table2 s group by s.ProductId) pin on p.id=pin.ProductId
where p.categoryid=238
返回的行是:
现在,当我运行此更新查询时:
update TAble1 set sizing=0 from
TAble1 p join
(s
我正在使用SQL Server 2012,我需要对一个名为Notes的特定字段执行搜索。搜索条件是查找在该特定字段中提到术语8%的所有行。
我的WHERE查询的T-SQL子句如下所示:
WHERE [Notes] like '%[8%]%'
但是,根据上述语法,查询没有正确地进行筛选。它还包括提到术语8的行。
我看过以下问题中提出的答案,但仍然没有给出正确的答案。
此查询使用特定于Sqlite的特性返回行上的信息,每个组具有最小时间戳(自3.7.11以来)。但是,Server指出,在带有group子句的查询中返回的所有列都必须具有某种聚合。
如何将此查询转换为Server 2012?
SELECT
Id, MIN(TimestampTicks), TelemetryId, Value
FROM
Events
WHERE
TelemetryId in (1690, 1691, 1692, 1700)
GROUP BY
TelemetryId
我想根据QComboBoxes在QTableWidget中显示一个数据。在选择所有性别或选择所有年龄的情况下,我希望在sqlite3查询的列中应用选择全部
我想要性别至上
gender = "select all both male and female"
connection.execute("SELECT * FROM child where region=? and hospital=? and ageInMonths=? and gender=?", (region,hospital,ageInMonths,gender))
我有一个麻烦,当我尝试Avarege列,然后我想对结果求和,我正在使用MYSQL来做。有谁可以帮我?下面是不起作用的查询:
SUM(IF(AVG(Value)=3,1,0)) AS green
完整查询:
SELECT
cluster,
SUM(IF(AVG(Value) AS Value = 3,1,0)) AS green
FROM network
WHERE date>= '2012-07-01'
AND date<= '2012-07-02'
AND Region = 'SOMEREG'
AND
我创建了一个web应用程序(ASP.NET Core ),它从server检索大量数据。应用程序安装在带有IIS 6.2和Windows server 2012R2的服务器(A)中,而SQL服务器安装在另一个服务器(B)中,MS SQL Server 2014和Windows Server 2012R2。
当此应用程序安装在服务器A中时,检索大量数据将返回错误:
502 - Web server received an invalid response while acting as a gateway or proxy server.
There is a problem with the