是否可以将此SQL转换为LINQ?
SqlCommand cmd = new SqlCommand(@"
WITH new AS (
SELECT [UserSessionSequenceID],
[SessionGuid],
SiteID,
IP,
UrlTitle,
Url,
Referer,
BrowserWidth,
BrowserHeight,
[Timestamp],
R
我正在尝试在java中运行IF exists' SQL query with statement.executeUpdate(query)。如果我直接在SQL server management studio中运行,但没有使用executeupdate(查询)函数,则查询执行得很好,并给出了错误com.microsoft.sqlserver.jdbc.SQLServerException: The statement did not return a result set.异常。
我正在执行的查询是:-
IF EXISTS(select * from sysobjects where
我有一个LINQ to Entity查询,运行速度非常慢。此查询在特定数据库上执行一些计算逻辑,然后将结果传递给ViewModel。查询非常快,直到我在查询的底部添加了4个select语句。我需要select语句来返回结果响应的集合。为什么查询运行得这么慢?
var data = from SurveyResponseModel in db.SurveyResponseModels
group SurveyResponseModel by SurveyResponseModel.MemberId into resultCount
下面是我正在尝试执行的SQL UPDATE:
UPDATE T
SET T.CurrentStopNumber = TS.CurrentStopNumber
FROM Trip T
INNER JOIN (SELECT TripId, MIN(StopNumber) CurrentStopNumber
FROM TripStop
WHERE TripId = '106504'
AND (IsPickup = 1 OR IsDrop = 1)
AND StopNum
我想要执行where条件中的select查询,以便更新表根据SQL Server中的每个用户帐户填充数字增量。
下面是我的代码:
DECLARE @i INT = 0;
WHILE @i <= 1077
begin
update tbl_UdharKhata set ReceiptNo = @i
where EXISTS (select distinct UserId from tbl_udharkhata)
SET @i = @i + 1;
end
这个查询运行得很好,但问题是在ReceiptNo中,整个用户帐号收据号码都更新了相同的号码。
注意
我正在运行非常复杂的查询,它是由几个内部查询构建的。查询开始时包含SQL_CALC_FOUND_ROWS。不幸的是,只能获取多少行(我无法获取结果本身)。
我决定摆脱SQL_CALC_FOUND_ROWS,运行两个不同的查询,一个是对行进行计数,另一个是获取它们。在这种情况下,我可以检索结果,但是COUNT(*)查询的行为很奇怪。我就是这样做的:
querymysql_query()在COUNT(*)查询返回空字符串后直接返回执行计数(*)
守则是:
$sqlCount = "SELECT COUNT(*) AS c FROM ... WHERE ...";
$resultCo
嘿,我刚接触Oracle SQL,但我是PostGreSQL和SQL Server的常客。我目前正在尝试运行一个查询,该查询将在每次运行查询时具体化一个表。实际的应用程序要复杂得多,但大体是这样的:
declare
v_exists number:=0;
BEGIN
select count(1)
into v_exists
from all_tables
where table_name = 'FFF';
if v_exists >0 then
EXECUTE IMMEDIATE 'DROP TABL
我是sql (和sqlite)的新手,到目前为止,我已经了解到需要使用count来获取查询返回的行数。然而,如果我得到了10'000个结果,并且想要将它们分成10个“页面”,我想在一个页面上只显示0-1'000个结果,在另一个页面上显示1'000-2'000个结果,依此类推。
我应该如何编写一个只显示我感兴趣的结果的sql查询?我想我必须这样做:
select *
from sometable
where somecol like '%whatever%'
AND resultcount > 1000
AND resultcou
我有一个查询,它只检索Table 1的Description字段的记录,这些记录与Table 2的Keywords字段中的关键字不匹配或包含这些关键字。因此,匹配的不应该出现在GridView中,而应该只显示不匹配的。我试图在GridView中显示SQL查询的结果,但是我得到的是匹配的结果,这不是我的要求。
我尝试在SQL Server中运行SQL查询,它工作得非常好。即使在我的web应用程序中,它也运行得很好,但前提是我在Like语句后显式地指定了关键字。相反,我希望它跨越Table2中的所有Keywords。这是我的代码。
conn.Open()
For Each row As GridV
我有一个从使用日志中返回行的SQL查询,如下所示:
ActionID ActionType ActionDetail ActionDetailValue
1 SEARCH Query jones
1 SEARCH ResultCount 156
2 DOCUMENT_VIEW Title All About Mister Jones
2 DOCUMENT_VIEW DocumentID EKD
我正在使用jdbc从MySQL工作台和本地tomcat运行以下内容。
START TRANSACTION;
CREATE SCHEMA IF NOT EXISTS `ROOT`;
CREATE TABLE IF NOT EXISTS `ROOT`.`all_tables` (
`_id` BIGINT NOT NULL AUTO_INCREMENT,
`class_type` VARCHAR(100) NOT NULL,
`schema` VARCHAR(30) NOT NULL,
`table_name` VARCHAR(30) NOT NULL,
`
在我们的生产环境中,我们有几台带有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时,这些查询运行得非
我有两个具有相同表和视图的数据库,一个在SQL Server 2008中,另一个在SQL Server 2000中。
我写了这个查询,它在SQL Server2008中可以工作,但在SQL Server2000中不能工作。
如何更改代码以在SQL Server2000中工作?
SELECT
SUM(NA_DA) OVER (PARTITION BY vd.SI_VoucherH) AS a,
SUM(NA_CA) OVER (PARTITION BY vd.SI_VoucherH) AS b
FROM
acc.ACC_VOUCHERH vh
INNER JOIN
我需要用Oracle编写查询,但我更熟悉SQL Server。
在SQL Server中,查询将如下所示:(简化)
if exists (
select * from table where a=1
)
begin
update table set b=1 where a=1
end else
begin
insert table (a,b) values(1,1)
end
感谢您的帮助:)
===============================================================================
这是合并选项
如果您想知道COUNT(*)是否>0,那么可以使用EXISTS来提高查询效率。当我想知道COUNT(*)是否大于1时,有没有方法可以使查询更有效?
(需要与SQL Server和Oracle兼容。)
谢谢,杰米
编辑:
我正在尝试提高一些代码的性能。有一些类似于以下内容的行:
if (SQL('SELECT COUNT(*) FROM table WHERE a = b') > 0) then...
和
if (SQL('SELECT COUNT(*) FROM table WHERE a = b') > 1) then...
第一行很容易切换
DECLARE @MyDate Datetime
set @MyDate = GETDATE();
WITH cte AS
(SELECT @MyDate AS AllDates,
1 AS [count_all_days],
CASE WHEN DATENAME(dw, DATEADD(dd, - 1, @MyDate)) IN ('Saturday', 'Sunday') THEN 1 ELSE 0 END AS [count_week_days]
UNION ALL
SELECT DATEADD(dd, - [count_a
我测试了SQL的每个部分,它运行得很好。
但是,我的WHERE条款有问题。但是,在VS 2012中设置断点的细节并不多.
这应该是使用MS进行子查询的INSERT语句的代码吗?
INSERT INTO Emails (email, insertDate)
VALUES (@Email, @DateToday)
WHERE NOT EXISTS (SELECT Emails.email
FROM Emails WHERE Emails.email = @Email);
我在SQL Server 2008企业版上运行查询时遇到问题。该查询是从另一个表插入到另一个表的,但它检查记录是否只插入一次。该查询如下所示:
insert into A(...)
--complex select from table B as b
WHERE NOT EXISTS (SELECT 1 FROM A WHERE id = b.id)
Edit:此查询执行以下操作:如果从B选择记录45 (即,id = 45的记录)两次,则第一次出现where is true记录45,因此将其插入A中。然后,第二次出现记录45,where条件为false,因此它不会插入A中两次。
这个查询在SQ
版本: Server 2008 R2
数据库: AdventureWorks 2008R2来自
查询:
SELECT TOP 10
*
FROM
Person.Person --WITH (FORCESEEK)
WHERE
LastName like 'Max%'
OR EXISTS (
SELECT
1
FROM
Person.PersonPhone
WHERE
Person.PersonPhone.BusinessEntit
我正在寻找一种方法来选择我的sql server上的所有数据库,其中只包含表"dbo.mytable“。
我该怎么做呢?
我已经有了这两个sql查询:
Select name From sys.databases Where database_id > 5
和
IF EXISTS
(SELECT * FROM sys.objects
WHERE object_id = OBJECT_ID(N'[dbo].[mytable]') AND type in (N'U'))
Select 1 [Exists]
Else
Sele
我有一个带有NOT EXISTS的SQL查询,用于从最终结果中排除一组特定的值。
select distinct
from [rpt_StockInventorySummary] a
where a.[DepartmentId] ='P'
and not exists (
select *
from rpt_StockInventorySummary b
where b.DepartmentId = 'p'
and b.Manufacturer = 'warrington'
and b.LowestGroup = 57 and b.Insto
我已经获得了一些如下形式的遗留SQL语句:
IF EXISTS (SELECT 1 FROM ... WHERE ...)
AND NOT EXISTS (SELECT 1 FROM ... WHERE ...)
AND EXISTS (SELECT 1 FROM ... WHERE ...)
INSERT INTO ...
有没有办法改变这个查询,使它在SQL Server CE和/或SQLite和普通SQL Server中都能工作?请注意,将过程性IF逻辑移出SQL不是一种选择。
谢谢。
为了让我的问题更容易理解,这里有一个例子。
有两种模型:
class A(models.Model):
name = models.CharField(max_length = 10)
class B(models.Model):
a = models.ForeignKey(A)
name = models.CharField(max_length = 10)
因此,在本例中,A和B是一对多关系。现在假设我想要进行以下查询:找到一个至少有一个B作为子级的A。在sql中,我显然应该使用exists子句。有没有可能用orm实现完全相同的结果呢?
我对此做了一些研究,但找不
我试图在单个表中执行基于条件的查询,这是我在sql server中的查询。其中PATTERN是列名,默认值设置为0,我只想将结果显示到excel表格的一个单元格中。我链接了SQL server和Excel工作表。
IF ([PATTERN] = 1)
BEGIN
SELECT PATTERN,COLOR,SHIFT FROM [DEFECT_RESULTS]
END
ELSE
SELECT MODEL,COLOR FROM [DEFECT_RESULTS]
pattern列存在,但以下错误仍在显示错误:列名称'PATTERN‘无效。
我刚刚遇到了一种奇怪的SQL Server行为。
在我的场景中,我有一种动态数据库,所以在运行涉及表的查询之前,我需要检查和列的存在。
我无法解释为什么这个查询
IF 0 = 1 -- Check if NotExistingTable exists in my database
BEGIN
SELECT NotExistingColumn FROM NotExistingTable
END
GO
正确执行,但查询
IF 0 = 1 -- Check if NotExistingColumn exists in my ExistingTable
BEGIN
SELECT Not