我有一个现有的控制器操作,如下所示。
Public Function List(ByVal UserID As Integer, Optional ByVa; Filter As String = Nothing) As ActionResult
Dim records
If Filter IsNot Nothing Then
records = context.Contacts.Where(Function(x) x.UserID = UserID and x.Name.Contains(Filter))
Else
records =
在Server 2012中,我希望运行一个查询,检查是否存在索引视图。如果是这样的话,我希望运行一个SELECT语句WITH(NOEXPAND)。如果没有,我想运行一个select语句而不展开。下面是我使用的代码:
DECLARE @x int
IF NOT EXISTS (SELECT * FROM sys.indexes
WHERE object_id = OBJECT_ID('test'))
SET @x = 0
ELSE
SET @x = 1
IF(@x = 1)
SELECT category, _TimeSt
我有一个group by - having查询,我是否可以在having子句中添加额外的where条件,而不是添加额外的where clause.Will结果是相同的?是否会有无法将所有where添加到having子句的情况?我之所以需要这样做,是因为我正在开发一个查询生成工具,而这个特定的特性将为我节省一些UI和查询生成逻辑方面的工作。
例如
USE AdventureWorks ;
GO
SELECT SalesOrderID, SUM(LineTotal) AS SubTotal
FROM Sales.SalesOrderDetail
GROUP BY SalesOrderID
HAVI
我想得到我的销售,每天的位置在我的orders_summary表。
orders_summary表列: id、日期、金额、sku_id
产品表列: id,sku
目前,我每天的销售额如下:
SELECT
MAX(CASE WHEN os.date = '01/01/2022' THEN COALESCE(amount,0)::INT ELSE 0 END) AS orders_1,
MAX(CASE WHEN os.date = '01/02/2022' THEN COALESCE(amount,0)::INT ELSE 0 END) AS or
我有以下疑问:
SELECT
`people`.`surename`,
calcWeight(`people`.`surname`,'kiera',6)
as `weight`
FROM
`people`
LEFT JOIN
`dogs`
ON
`people`.`id` = `dogs`.`owner`
ORDER BY
`weight` DESC
问题是我需要删除所有的结果,其中weight是我正在计算的一个值是0。我认为它应该是WHERE weight >0,但显然weight直到where子句之后才
首先,我使用的Server查询:
SELECT InfoSource
FROM dbo.orders
WHERE Price IS NULL
AND Date IS NULL
AND Expiry IS NULL
GROUP BY InfoSource
HAVING COUNT(InfoSource) = 1
许多记录可以具有相同的InfoSource值。我试图返回任何InfoSource的值,其中只有一个InfoSource的存在记录,并且在该记录中满足了WHERE条件。
问题是,在运行此查询后,我获取结果并对其执行SELECT语句,以验证记录是否满足条件,但许多InfoSource
我想知道是否有任何方法可以在PL/SQL过程的声明中包含if语句。例如:
procedure testing (no IN NUMBER, name IN VARCHAR2) IS
if no = 0 then
cursor c is
select * from table where name = name;
else
cursor c is
select * from table where name = name;
end if;
BEGIN
--work with cursor c
E
我有一个继承自抽象Group的类GreenGroup。GreenGroup具有在分部类中定义的未映射属性State。
我有一个方法GetGreenGroups(GroupFilter filter),它应该返回状态== filter.State所在的GreenGroup对象的列表。
public List<GreenGroup> GetGreenGroups(GroupFilter filter)
{
IQueryable<VirtualMachineInfo> result = GetAllGroupsInternal(userContext);
i
查询1:
SELECT id,COUNT(X.C_NO) as count
FROM table X
WHERE X.date = '2022-02-02'
and P_NO is not null
group by id;
查询2:
SELECT id,
sum(CASE WHEN C_NO IS NOT NULL and P_NO is not null THEN 1 ELSE 0 END) as count
FROM table X
WHERE B.date = '2022-02-02&
我有一个CASE表达式,对于一个WHEN子句,我从一个表中选择数据并检查它是否存在。如果它存在,我希望返回THEN表达式中该行中的一列。
case
--a few when statements
when name = 'aiden'
THEN
case
when (select top 1 * from tableA a where [list of conditions]) = 1 and (select top 1 value from tableB b where [list of conditions
在我对索引的基本理解中,索引用于WHERE子句中的列。由于HAVING子句类似于在GROUP BY语句之后应用的WHERE子句,那么索引对此是否具有相同的效果呢?例如:
SELECT * FROM table WHERE full_name = 'Bob Jones'
--> index on full_name would be beneficial here
和
SELECT * FROM table WHERE first_name = 'Bob'
GROUP BY
height HAVING height > 72
在第二个查询中,
我一直试图找出在哪里可以在SQLQuery中设置一个变量。我有两个不同的select语句,它们将有一个不同的WHERE子句,这取决于IF语句的答案,但是我只需要运行查询一次就可以设置这个变量,而且由于我已经在运行代码来查找这个特定的表,所以我希望在第一个SELECT语句中这样做。
我试图设置的变量名为regType
SELECT S.subID, C.cKey
FROM Comp AS C
JOIN JData AS J ON J.pKey = C.primary
JOIN Sub AS S ON J.fKey = S.pKey
WHERE ( //This is where I need
是否可以在case子句中为when语句写入子查询
即。
SELECT colA, colB,
CASE WHEN (SELECT colA FROM tab2 WHERE tab2.colA = tab1.colA) THEN '1'
CASE WHEN (SELECT colA FROM tab3 WHERE tab3.colA = tab3.colA) THEN '2'
ELSE '0'
END AS colC,
...
FROM tab1
扩展问题:
是否可以基于该值列执行某些操作?(非常确定是的,但希望得到确认)
我需要一个正则表达式来确定给定的SQL语句是否有WHERE子句。我的问题是,传递的SQL语句很可能很复杂,所以我不能仅仅依靠语句中WHERE这个词的存在。
例如,下面的内容应该匹配
SELECT Contacts.ID
, CASE WHEN (Contacts.Firstname IS NULL) THEN ''
ELSE CAST(Contacts.Firstname AS varchar)
END AS Firstname
, CASE WHEN (Contacts.Lastname IS NULL) THEN &
在SQL中有WHERE和HAVING:... WHERE ... GROUP BY ... HAVING ...。
为什么每个SELECT语句都没有多个GROUP和多个GROUP语句,比如:... WHERE ... GROUP BY ... HAVING ... GROUP BY ... HAVING ...。
为什么一个WHERE和一个HAVING就足够了?或者这还不够?
亲爱的Stack Overflow社区:
我有一个关于在Android中查询sql数据库时如何合并WHERE子句的问题。我的目标是从我的数据库where the date picked by a datepicker matches the date stored返回特定的记录。
下面是我的代码:
private static String datePickerDate = "3/29/2011";
private static String[] FROM = { _ID, NAME, PRICE, DATE, TIME };
private static String ORD
为什么要执行以下查询:
select ROW_NUMBER() OVER(PARTITION BY user_id ORDER BY time DESC) as rownum FROM users where rownum < 20;
是否产生以下错误?
ERROR: column "rownum" does not exist LINE 1: ...d ORDER BY time DESC) as rownum FROM users where rownum < 2...
我如何构造这个查询,以便获得窗口函数定义的前20个项目?
user_id和time都是us
我不是在问这两个条款有什么区别。我理解WHERE子句在表中的行中进行搜索,that子句在select语句中分组的项中搜索。
示例:
SELECT x, Count(*) FROM table WHERE x IS NOT NULL GROUP BY x HAVING Count(*) > 1 ORDER BY x
返回与
SELECT x, Count(*) FROM table GROUP BY x HAVING x <> NULL AND Count(*) > 1 ORDER BY x
WHERE子句可以在每次都
我有两个DB2表,一个用于users,一个用于newsletters,我希望在WHERE子句中使用别名进行选择。
SELECT a.*, b.tech_id as user FROM users a
JOIN newsletter b ON b.tech_id = a.newsletter_id
WHERE timestamp(user) < current_timestamp
这是从根本上简化的,这样我就可以看到发生了什么,但是我得到了一个错误,使我认为user别名没有被正确地传递:
ERROR: An invalid datetime format was detected; t
是否可以在覆盖子句中使用where子句,如下所示?
SELECT SUM(amount) OVER(partition by prod_name WHERE dateval > dateval_13week)
我不能使用之前和后面的内部over子句,因为我的日期不在顺序中。所有我需要获取的是小于当前记录的13week日期值的记录。
EDIT :
sum(CASE WHEN dateval >= dateval_13week and dateval <=current_row_dateval then amount else 0 end) over (partition by
如果我有这样的查询:
SELECT
A.ID,
A.Name,
A.Type,
B.FirstName,
B.LastName,
B.DateOfBirth,
C.OfficeName
FROM A
INNER JOIN B ON A.ContactID = B.ID
INNER JOIN C ON B.OfficeID = C.ID
WHERE
A.Type = 1
何时应用A.Type =1筛选器?是在连接之后,还是查询查找'A',确定它是否通过了筛选器,如果通过,则只连接到B和C?
希望这是有
我已经查过了,但没有找到任何东西来帮助解决我的问题。我不知道如何解释与我的查询有关的错误消息。
我的问题是:
select AST_ID,
case when CRA_StatusID=1 then 'Wait on Info'
when CRA_StatusID=2 then 'Wait PrePay'
when CRA_StatusID=3 then 'Acquire Chart'
when CRA_StatusID=4 then 'Copy Chart'
when CRA_Statu
我有一个包含以下列的表:DATE, TICKER, and ID. --本质上,我试图对下面的代码进行选择--选择所有的代码和相应的ID(它可以有多个ID)。但是,在该表中,有多个条目,在这些条目中,代码可以具有相同的ID,但属于不同的日期,因此在这种情况下,我选择ID的日期最小。
SELECT
MIN(DATE),
TICKER,
ID
FROM Names
GROUP BY
TICKER,
ID
WHERE TICKER IN ('A', 'B')
现在,当我独立尝试这
我试图根据IN参数来构造WHERE子句。出于这个原因,我正在做一些关于在WHERE IN子句中使用CASE的实验。下面是一个很好的方法:
SELECT * FROM TABLE1 WHERE COL1 IN (SELECT ID FROM TABLE2);
假设我有一个名为P1的输入参数。这种类型是不必要的。如果P1的值为null,那么下面的值也很好:
SELECT * FROM TABLE1 WHERE COL1 IN (CASE P1 WHEN NULL THEN COL1 ELSE (SELECT ID FROM TABLE2));
但是如果P1不是空的,我得到
ORA-01427:单
我有个疑问..。
SELECT
CONVERT(NUMERIC(8, 2), ResultLevel),
*
FROM
dbo.DrugTestResult
WHERE
DrugID = 'THC'
AND ISNUMERIC(ResultLevel) = 1
AND (CONVERT(NUMERIC(8, 2), ResultLevel) >= 50
AND CONVERT(NUMERIC(8, 2), ResultLevel) <= 99999)
AND CONVERT(
因此,基本上,在我的查询中,我希望有一个statuses列,它将包含基于特定条件的1个或多个状态。用户还应该能够对该列中的状态消息进行过滤/搜索。我不确定实现这一点的语法。
这将在我的列中选择0到2个状态div,我按原样显示。
理论上,这是我想要发生的事情:
Select fields, (select CASE WHEN root_directory IS NULL THEN '<div class="gray status">Unbuilt</div>' ELSE '' END + ' ' + (sel
我有这样的疑问:
SELECT TOP(1)
CASE WHEN COUNT(Example_ID) > 0 THEN 1 ELSE 0 END AS 'Exists'
FROM Example
WHERE Example_ID IS NULL
;
我的问题是,如果我使用聚合,它将从整个表中获取数据,但如果我使用标准查询,即:
SELECT TOP(1)
1 AS 'Exists'
FROM Example
WHERE Example_ID > 0
;
它会在它发现的第一个地方停下来吗?哪一个有更多的优化?
我有两个数组,我将使用这些数组与FORALL一起插入/更新。我不确定我是否可以使用"MERGE“语句和FORALL,所以我使用两个数组。
在数组中填充数据时,我检查它是否已经在db中。如果是的话,我将填充的数据放在一个要更新的数组中,否则它将被插入数组。
TYPE T_TABLE IS TABLE OF TABLE_1%ROWTYPE INDEX BY PLS_INTEGER;
TAB_I T_TABLE;
TAB_U T_TABLE;
--..more code
BEGIN
SELECT COUNT(*) INTO rec_exist FROM TABLE_1 where COL_
我喜欢使用卫士,我也遇到了这样的情况:我也想在打字机上使用where:
guard let status = dictionary.objectForKey("status") as! String! where status is String else { ...}
xCode正确地抱怨它总是正确的。
我的目标是在一条线上的后卫后面有一个未包装的字符串。
我该怎么做?
有两个查询:
select * from X inner join Y on X.id=Y.id where X.text = "ABC";
和
select * from X inner join Y on X.id=Y.id and X.text = "ABC";
在执行过程中,内存利用率是否有足够的差异,哪一个不那么贪婪?请证明你的答案。
首先。抱歉标题含糊不清。我想不出怎么设计它。使用示例代码,我希望您能够理解我的怀疑。
任务是找出俱乐部的前三大设施的收入。我以为这是最后的密码。
SELECT x,y as rank
FROM tableA
where rank <=3;
但这说明等级列不存在。因此,我必须将其包含在另一个子查询中,以筛选前3名。
SELECT x,rank
FROM
(SELECT x,y as rank
FROM tableA
) as sub
where rank<=3;
为什么?我需要一个额外的子查询?为什么它不能使用原始查询中的where子句进行筛选?
我正在重写不再需要所有数据的查询。我的问题是,我从未见过、也没有在StackExchange上发现任何专门解决这个问题的实践。
我知道HAVING语句的目的是在聚合上引入条件,就像WHERE在单个行上引入条件一样。但是,我在这段代码中看到的是,在带有聚合的查询中使用HAVING代替WHERE。HAVING中的条件不是应用于聚合,而是应用于非聚合列。
例如:
SELECT id, filedate, SUM(amount)
FROM Sales
GROUP BY id, filedate
HAVING id = 123 AND filedate = '1/1/2018'
相对于:
在下面的程序中,我在更新锁方面有点混乱。
CREATE OR REPLACE
PROCEDURE pro_cedure(
p_dept_id NUMBER )
IS
CURSOR mycursor
IS
SELECT deptno,comm,extra
FROM emp
WHERE comm IS NULL
AND extra IS NOT NULL
AND deptno = p_dept_id
FOR UPDATE OF comm;
BEGIN
FOR emp_rec IN mycursor
LOOP
UP