Tag: sql

varchar(500)通过varchar(8000)有优势吗?

我已经阅读了MSDN论坛上的这个,我还不清楚。 我认为这是正确的:Varchar(max)将被存储为文本数据types,所以有缺点。 所以,让我们说你的领域将可靠地低于8000个字符。 像我的数据库表中的BusinessName字段一样。 事实上,一个企业名称可能总是在500个字符以下(拉出一个数字)。 我似乎有很多varchar字段在8k字符数下运行。 所以我应该使该字段varchar(500),而不是varchar(8000)? 从我所了解的SQL来看,这两者之间没有任何区别。 所以,为了使生活变得简单,我想将所有的varchar字段定义为varchar(8000)。 这有什么缺点吗? 相关: varchar列的大小 (我不觉得这个回答我的问题)。

ORDER BY IN值列表

我在PostgreSQL 8.3中有一个简单的SQL查询来抓取一堆评论。 我在WHERE子句中为IN构造提供了一个sorting的值列表: SELECT * FROM comments WHERE (comments.id IN (1,3,2,4)); 这个以任意顺序返回的评论,在我碰巧是1,2,3,4 。 我想要结果行像IN结构中的列表一样sorting: (1,3,2,4) 。 如何实现?

用T-SQL创build一个date

我试图将个别部分,如12,1,2007date转换为SQL Server 2005中的date时间。我已经尝试了以下: CAST(DATEPART(year, DATE)+'-'+ DATEPART(month, DATE) +'-'+ DATEPART(day, DATE) AS DATETIME) 但是这会导致错误的date。 将三个date值转换为适当的date时间格式的正确方法是什么?

SQL JOIN与IN性能?

我有一个情况,使用JOIN或IN会给我正确的结果…通常有更好的性能,为什么? 多less取决于你正在运行的数据库服务器? (FYI我正在使用MSSQL)

如何知道MySQL表最后更新的时间?

在我页面的页脚中,我想添加诸如“上次更新xx / xx / 200x”这样的date,这个date是某个mySQL表最后一次更新的时间。 什么是最好的方法来做到这一点? 有没有一个函数来检索最后更新的date? 每次我需要这个值时,我应该访问数据库吗?

与Oracle进行分页

我不像我想要的那样熟悉Oracle。 我有大约25万条logging,我想每页显示100条logging。 目前我有一个存储过程,它使用数据适配器,数据集和dataadapter.Fill(dataset)方法从存储过程的结果中检索所有25万logging到数据集。 如果我有“页码”和“每页logging数”作为整数值,我可以作为parameter passing,什么是最好的方式来找回那个特定的部分。 比如说,如果我通过10页作为页码,120页作为页数,从select语句中可以得到1880年到1200年之类的东西,那么我脑中的math可能就会消失。 我用C#在.NET中这样做,认为这并不重要,如果我可以在SQL方面得到它,那么我应该很酷。 更新:我能够使用布赖恩的build议,而且工作得很好。 我想进行一些优化,但是页面会在4到5秒内完成,而不是一分钟,而且我的分页控制能够很好地与新的存储过程集成在一起。

我怎样才能从SQL Server中的表中获取列名?

我想查询一个表的所有列的名称。 我发现如何做到这一点: 神谕 MySQL的 PostgreSQL的 但是我需要知道: 如何在Microsoft SQL Server (2008在我的情况下)这样做呢?

在SQL中EXISTS和IN之间的区别?

SQL中的EXISTS和IN子句有什么区别? 什么时候应该使用EXISTS ,什么时候使用IN ?

Oracle:如果表存在

我正在为Oracle数据库编写一些迁移脚本,希望Oracle有类似于MySQL的IF EXISTS构造的东西。 具体来说,每当我想在MySQL中删除一个表时,我都会这样做 DROP TABLE IF EXISTS `table_name`; 这样,如果该表不存在,则DROP不会产生错误,并且该脚本可以继续。 Oracle有类似的机制吗? 我意识到我可以使用下面的查询来检查表是否存在 SELECT * FROM dba_tables where table_name = 'table_name'; 但与DROP捆绑在一起的语法正在逃避我。

如何使用SQL查询创build逗号分隔列表?

我有3个表称为: 应用程序(ID,名称) 资源(id,名称) ApplicationsResources(id,app_id,resource_id) 我想在GUI上显示所有资源名称的表格。 在每一行中的一个单元格中,我想列出所有的资源的应用程序(以逗号分隔)。 所以问题是,在SQL中这样做的最好方法是什么,因为我需要获取所有资源,并且还需要获取每个资源的所有应用程序? 我是否首先从资源运行select *,然后循环遍历每个资源,并对每个资源执行单独的查询以获取该资源的应用程序列表? 有一种方法,我可以在一个查询中做到这一点?