标签: sql

在SQL Server查询中UNION ALL vs OR条件

我必须根据表上的不存在条件选择一些行.如果我使用如下所示的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)

sql sql-server

11
推荐指数
2
解决办法
2万
查看次数

如何将两个参数值传递给couchdb视图?

我想在CouchDB视图中重现此SQL.

SELECT name,department FROM Persons where id = ? and group_id = ? ;
Run Code Online (Sandbox Code Playgroud)

如何在CouchDB中为此SQL编写视图和查询视图?

sql couchdb language-comparisons

11
推荐指数
1
解决办法
2万
查看次数

带有二进制的SQL WHERE子句

我有一个带有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 sql-server where

11
推荐指数
2
解决办法
1万
查看次数

在SQL中更新多个记录

如何使用SQL在单个语句中更新多个记录?:

UPDATE records
   SET name='abc' where id=3,
   SET name='def' where id=1
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-update

11
推荐指数
3
解决办法
3万
查看次数

在谷歌地图上做"路线上的兴趣点"

我需要允许旅行者使用谷歌地图绘制路线,然后查询我的兴趣点数据库(比方说,麦当劳的位置),然后显示所有这些位置,它们将在一英里或两英里的路线内服用.问题是,如何有效地获取从谷歌返回的"行车路线"信息(基本上是一对纬度/长线对),然后将其转换为sql查询以获取距离路线一定距离的位置?

它不一定非常精确,并且"当鸟飞过"距离路线很近.我最担心的是合理有效率.

在数据库中,基本上每个条目都具有纬度和经度,因此我可以根据需要更改数据库模式.

举个例子,这个网站做我想做的事情(如果你给出一个起点和终点,它将显示你将要走的高速公路附近的人字形站):http: //www.chevron.com/products /stations/stationfinder/planyourroute.aspx

http://karmatics.com/docs/locationsalongroute.png

sql google-maps geolocation

11
推荐指数
1
解决办法
4704
查看次数

如何一次删除多个约束(Oracle,SQL)

我正在更改数据库中的约束,我需要删除其中的一些约束.我知道对于单个约束,命令如下:

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)

sql database oracle constraints

11
推荐指数
1
解决办法
3万
查看次数

使用Dapper将字符串映射到guid

我正在使用Dapper来敲除一些需要访问PostgreSQL数据库的负载测试工具.PostgreSQL的这个特定版本本身不支持GUID,因此GUID值存储为32个字符串.使用someGuid.ToString("N")转换回Guid 的值,可以使用转换回Guid new Guid(stringValueFromColumn).

我的问题是如何让Dapper读取字符串并将其转换回Guids?

我尝试修改DbType映射,但这不起作用.

c# sql orm dapper

11
推荐指数
4
解决办法
1万
查看次数

Mysql使用通配符提高搜索性能(%%)

以下是我用于通过电子邮件搜索某人的查询

  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)

在"电子邮件"上添加索引会加快查询速度吗?

mysql sql indexing query-optimization

11
推荐指数
3
解决办法
1万
查看次数

SQL Server 2008 - 如何加入3个表

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 sql-server-2008

11
推荐指数
1
解决办法
6万
查看次数

多个数据库上的SQL查询

我在一个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 sql-server

11
推荐指数
1
解决办法
7万
查看次数