我必须根据表上的不存在条件选择一些行.如果我使用如下所示的union,它将在不到1秒的时间内执行.
SELECT 1 FROM dummyTable
WHERE NOT EXISTS
(
SELECT 1 FROM TABLE t
WHERE Data1 = t.Col1 AND Data2=t.Col2
UNION ALL
SELECT 1 FROM TABLE t
WHERE Data1 = t.Col2 AND Data2=t.Col1
)
Run Code Online (Sandbox Code Playgroud)
但是如果我使用OR条件,则SQL服务器正在执行一个表惰性池时需要将近一分钟.有人可以解释一下吗?
SELECT 1 FROM dummyTable
WHERE NOT EXISTS
(
SELECT 1 FROM TABLE t
WHERE ( (Data1 = t.Col1 AND Data2=t.Col2) OR (Data1 = t.Col2 AND Data2=t.Col1))
)
Run Code Online (Sandbox Code Playgroud) 我想在CouchDB视图中重现此SQL.
SELECT name,department FROM Persons where id = ? and group_id = ? ;
Run Code Online (Sandbox Code Playgroud)
如何在CouchDB中为此SQL编写视图和查询视图?
我有一个带有varbinary(max)列的SQL Server数据库表(即Data VarBinary(max)在create table命令中).
是否可以where在二进制数据中使用某种模式匹配来执行子句?
例如,使用C#.NET SqlCommand对象,我发现我可以执行查询select * from TableName where Data = 0x4638763849838709 go,其中值是完整数据列值.但我希望能够模拟匹配部分数据,比如select * from TableName where Data = 0x%3876% go.
谢谢.
如何使用SQL在单个语句中更新多个记录?:
UPDATE records
SET name='abc' where id=3,
SET name='def' where id=1
Run Code Online (Sandbox Code Playgroud) 我需要允许旅行者使用谷歌地图绘制路线,然后查询我的兴趣点数据库(比方说,麦当劳的位置),然后显示所有这些位置,它们将在一英里或两英里的路线内服用.问题是,如何有效地获取从谷歌返回的"行车路线"信息(基本上是一对纬度/长线对),然后将其转换为sql查询以获取距离路线一定距离的位置?
它不一定非常精确,并且"当鸟飞过"距离路线很近.我最担心的是合理有效率.
在数据库中,基本上每个条目都具有纬度和经度,因此我可以根据需要更改数据库模式.
举个例子,这个网站做我想做的事情(如果你给出一个起点和终点,它将显示你将要走的高速公路附近的人字形站):http: //www.chevron.com/products /stations/stationfinder/planyourroute.aspx
我正在更改数据库中的约束,我需要删除其中的一些约束.我知道对于单个约束,命令如下:
ALTER TABLE tblApplication DROP CONSTRAINT constraint1_name;
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试
ALTER TABLE tblApplication DROP (
CONSTRAINT constraint1_name,
CONSTRAINT constraint2_name,
CONSTRAINT constraint3_name
);
Run Code Online (Sandbox Code Playgroud)
它不起作用,我需要这样做:
ALTER TABLE tblApplication DROP CONSTRAINT constraint1_name;
ALTER TABLE tblApplication DROP CONSTRAINT constraint2_name;
ALTER TABLE tblApplication DROP CONSTRAINT constraint3_name;
Run Code Online (Sandbox Code Playgroud)
有没有办法在单个命令中删除多个约束?我想避免重复ALTER TABLE tblApplication,就像ADD命令一样:
ALTER TABLE tblApplication ADD (
CONSTRAINT contraint1_name FOREIGN KEY ... ENABLE,
CONSTRAINT contraint2_name FOREIGN KEY ... ENABLE,
CONSTRAINT contraint3_name FOREIGN KEY ... ENABLE
);
Run Code Online (Sandbox Code Playgroud) 我正在使用Dapper来敲除一些需要访问PostgreSQL数据库的负载测试工具.PostgreSQL的这个特定版本本身不支持GUID,因此GUID值存储为32个字符串.使用someGuid.ToString("N")转换回Guid 的值,可以使用转换回Guid new Guid(stringValueFromColumn).
我的问题是如何让Dapper读取字符串并将其转换回Guids?
我尝试修改DbType映射,但这不起作用.
以下是我用于通过电子邮件搜索某人的查询
SELECT *
FROM phppos_customers
JOIN phppos_people ON phppos_customers.person_id = phppos_people.person_id
WHERE deleted = 0
AND email LIKE '%f%'
ORDER BY email ASC
Run Code Online (Sandbox Code Playgroud)
在"电子邮件"上添加索引会加快查询速度吗?
SQL Server 2008:
我有3张桌子
Users, Scores, Lessons
Run Code Online (Sandbox Code Playgroud)
Users与... Scores相关联StudentID
Scores与... Lessons相关联LessonID
我想显示一个分数StudentID.这是我想要显示的列
Users.Name, Scores.LessonID, Scores.Result, Lessons.Title
Run Code Online (Sandbox Code Playgroud)
我知道如何加入2个表.我如何投入第三张桌子?
我在一个sql server上有两个数据库,我必须将两个表从一个DB服务器链接到另一个DB服务器中的两个表,以获取我需要的信息.问题是,当我尝试从第二个DB服务器链接两个表时,查询返回1000或更多的重复项.如何在两个数据库上运行单个查询?所有表都具有共同的repair_ord列.有人可以帮帮我吗?谢谢.
server 1 = CXADMIN
SERVER 2 = SAADMIN
这是我的查询到目前为止的样子:
SELECT RF.REPAIR_ORD,
RH.RECV_UNIT,
RH.RECV_SERIAL_NBR,
RP.FAULT_CODE,
RP.REPAIR_ACTION_CODE,
CG.TASK_CODE
FROM CXADMIN.RO_FAILURE_DTL RF,
CXADMIN.RO_HIST RH,
saadmin.sa_repair_part@elgsad rp,
saadmin.sa_code_group_task_dtl@elgsad cg
WHERE RF.REPAIR_ORD = RH.REPAIR_ORD
AND RP.REPAIR_ORD = CG.REPAIR_ORD
AND RF.FAILURE_CODE ='DISK'
AND RH.CURR_FACILITY_ID ='23'
AND RF.CREATED_DATE >'1-JUN-2010'
AND RF.CREATED_DATE < '1-JUL-2010'
AND ( CG.TASK_CODE ='PHMD'
OR CG.TASK_CODE ='PHSN'
OR CG.TASK_CODE ='CHMD'
OR CG.TASK_CODE ='CHSN')
Run Code Online (Sandbox Code Playgroud) sql ×10
sql-server ×4
c# ×1
constraints ×1
couchdb ×1
dapper ×1
database ×1
geolocation ×1
google-maps ×1
indexing ×1
mysql ×1
oracle ×1
orm ×1
sql-update ×1
where ×1