Questions tagged «sql»

结构化查询语言(SQL)是用于查询数据库的语言。问题应包括代码示例,表结构,示例数据以及正在使用的DBMS实现的标签(例如MySQL,PostgreSQL,Oracle,MS SQL Server,IBM DB2等)。如果您的问题仅涉及特定的DBMS(使用特定的扩展名/功能),请改用该DBMS的标签。使用SQL标记的问题的答案应使用ISO / IEC标准SQL。

6
使用Exists 1或Exists存在的子查询*
我曾经这样写过EXISTS检查: IF EXISTS (SELECT * FROM TABLE WHERE Columns=@Filters) BEGIN UPDATE TABLE SET ColumnsX=ValuesX WHERE Where Columns=@Filters END 前世的一位DBA告诉我,当我做一个EXISTS子句时,请使用SELECT 1而不是SELECT * IF EXISTS (SELECT 1 FROM TABLE WHERE Columns=@Filters) BEGIN UPDATE TABLE SET ColumnsX=ValuesX WHERE Columns=@Filters END 这真的有区别吗?
88 sql  sql-server  tsql 

15
EF 4.1异常“提供程序未返回ProviderManifestToken字符串”
我正在尝试复制在MSDN上找到的示例。我正在使用ASP.NET和EF 4.1(CTP?)。我已经使用NuGet来安装EntityFramework软件包。 我收到此错误:The provider did not return a ProviderManifestToken string...并且从未创建数据库。 这是我的连接字符串: <add name="HospitalContext" connectionString= "data source=.\SQLExpress;initial catalog=NewTestDB;integrated security=True;" providerName="System.Data.SqlClient"/> 这是我的代码: var pat = new Patient { Name = "Shane123132524356436435234" }; db.Patients.Add(pat); var labResult = new LabResult { Result = "bad", Patient = pat }; int recordAffected = db.SaveChanges(); 这是我的上下文: public …
88 asp.net  sql  entity 

12
函数与存储过程
假设我必须实现一段T-SQL代码,该代码必须返回一个表作为结果。我可以实现一个表值函数或一个返回一组行的存储过程。我应该使用什么? 简而言之,我想知道的是: 函数和存储过程之间的主要区别是什么?使用其中一种时,我必须考虑哪些因素?


6
计算两点之间的距离(纬度,经度)
我正在尝试计算地图上两个位置之间的距离。我已在数据中存储:经度,纬度,X POS,Y POS。 我以前一直在使用以下代码段。 DECLARE @orig_lat DECIMAL DECLARE @orig_lng DECIMAL SET @orig_lat=53.381538 set @orig_lng=-1.463526 SELECT *, 3956 * 2 * ASIN( SQRT( POWER(SIN((@orig_lat - abs(dest.Latitude)) * pi()/180 / 2), 2) + COS(@orig_lng * pi()/180 ) * COS(abs(dest.Latitude) * pi()/180) * POWER(SIN((@orig_lng - dest.Longitude) * pi()/180 / 2), 2) )) AS …

5
将数值转换为数值类型的算术溢出错误
每当我运行此查询时,我都会不断收到此错误消息: Msg 8115, Level 16, State 8, Line 33 Arithmetic overflow error converting numeric to data type numeric. The statement has been terminated. 但是,如果我将创建表更改为(7,0),则不会收到错误消息,但是我需要将数据显示为小数。我试过8,3不起作用。 有谁能帮助我完成这项工作?任何帮助将不胜感激。 DECLARE @StartDate AS DATETIME DECLARE @StartDate_y AS DATETIME DECLARE @EndDate AS DATETIME DECLARE @temp_y AS DATETIME SET @temp_y = Dateadd(yy, Datediff(yy, 0, Getdate()), 0) SET …



7
SQL EXISTS语句如何工作?
我正在尝试学习SQL,并且很难理解EXISTS语句。我碰到了有关“存在”的报价,但不了解以下内容: 使用exists运算符,您的子查询可以返回零,一或多个行,并且条件仅检查子查询是否返回了任何行。如果查看子查询的select子句,您将看到它由单个文字(1)组成;由于包含查询中的条件仅需要知道已返回多少行,因此子查询返回的实际数据无关紧要。 我不明白的是外部查询如何知道子查询正在检查哪一行?例如: SELECT * FROM suppliers WHERE EXISTS (select * from orders where suppliers.supplier_id = orders.supplier_id); 我知道,如果来自供应商和订单表的ID匹配,则子查询将返回true,并且将输出供应商表中匹配行的所有列。我不明白的是,如果仅返回true或false,则子查询如何传达应打印哪个特定行(假设供应商ID为25的行)。 在我看来,外部查询和子查询之间没有任何关系。
88 sql 

4
可以使用DISTINCT进行分区函数COUNT()的覆盖
我正在尝试编写以下内容,以便获得不同的NumUser的总运行量,如下所示: NumUsers = COUNT(DISTINCT [UserAccountKey]) OVER (PARTITION BY [Mth]) Management Studio对此不太满意。当我删除DISTINCT关键字时,错误消失了,但是不会有明显的区别。 DISTINCT在分区功能中似乎不可行。我该如何找到不同的计数?我是否使用更传统的方法,例如相关子查询? 进一步研究一下,也许这些OVER功能与Oracle的工作方式不同,无法使用它们SQL-Server来计算运行总计。 我在SQLfiddle上添加了一个实时示例,在该示例中,我尝试使用分区函数来计算运行总计。

18
SQL比较两个表中的数据
我有2个表TableA和TableB其具有例如列的相同的格式两个表TableA和TableB具有列 A B C D E F 其中A和B是主键。 如何编写SQL来检查,如果TableA与TableB具有相同主键正好包含在每列中的值相同。 这意味着这两个表具有完全相同的数据。
88 sql 

7
如何在MySQL中检查字段为null还是空?
我试图找出如何检查,如果一个字段是NULL或空。我有这个: SELECT IFNULL(field1, 'empty') as field1 from tablename 我需要添加其他检查field1 != "",例如: SELECT IFNULL(field1, 'empty') OR field1 != "" as field1 from tablename 任何想法如何做到这一点?
88 mysql  sql 



10
如何通过一次测试检查null / empty / whitespace值?
我想编写一个SELECT语句,该语句仅使用一个测试来返回无值的列(空,空或所有空格)。 我认为这可以工作: SELECT column_name from table_name WHERE column_name NOT LIKE '%_%'; 但这不适用于NULL值。 我当然可以加 OR column_name IS NULL 并且可以使用,但我想使用一种测试方法。
88 sql  oracle  oracle10g 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.