Tag: sql

今天的date减去两个月的SQL查询

我想select一个表中的所有logging,其中他们的入境date大于2个月。 任何想法我怎么能做到这一点? 我还没有尝试过任何东西,但我在这一点上: SELECT COUNT(1) FROM FB WHERE Dte > GETDATE()

PostgreSQL通配符LIKE用于任何一个单词列表

我有一个简单的〜25字的清单。 我在PostgreSQL中有一个varchar字段,假设列表是['foo', 'bar', 'baz'] 。 我想在我的表中find任何有这些单词的行。 这会有用,但我想要更优雅的东西。 select * from table where (lower(value) like '%foo%' or lower(value) like '%bar%' or lower(value) like '%baz%')

为什么我应该大写我的SQL关键字?

可能重复: T-SQL关键字使用大写是否有很好的理由? 简单的问题。 我个人发现一串小写字符比一串大写字符更可读。 是一些旧的/stream行的SQL的大小写敏感的东西? 以供参考: select this.Column1, case when this.Column2 is null then 0 else this.Column2 end from dbo.SomeTable this inner join dbo.AnotherTable another on this.id = another.id where this.Price > 100 与 SELECT this.Column1, CASE WHEN this.Column2 IS NULL THEN 0 ELSE this.Column2 END FROM dbo.SomeTable this INNER JOIN dbo.AnotherTable another ON this.id […]

Oracle Sql中的“!=”和“<>”有什么不同?

我想知道在Oracle中两个not equal运算符<>和!=是否有区别。 有没有他们可以给出不同的结果或不同的performance?

定义与IN运算符一起使用的variables(T-SQL)

我有一个使用IN运算符的Transact-SQL查询。 像这样的东西: select * from myTable where myColumn in (1,2,3,4) 有没有办法定义一个variables来保存整个列表“(1,2,3,4)”? 我应该如何定义它? declare @myList {data type} set @myList = (1,2,3,4) select * from myTable where myColumn in @myList

在Oracle SQL中显示表的所有约束的名称

我已经为在Oracle SQL中创build的多个表的每个约束定义了一个名称。 问题是,要删除特定表的列的约束,我需要知道我为每个约束提供的名称,我已经忘记了。 如何列出我为表的每一列指定的所有约束名称? 有没有这样做的SQL语句?

如何在PostgreSQL中将平均值舍入到小数点后两位?

我通过Ruby gem'sequel'使用PostgreSQL。 我正在尝试四舍五入到小数点后两位。 这是我的代码: SELECT ROUND(AVG(some_column),2) FROM table 我得到以下错误: PG::Error: ERROR: function round(double precision, integer) does not exist (Sequel::DatabaseError) 当我运行下面的代码时,我得到没有错误: SELECT ROUND(AVG(some_column)) FROM table 有谁知道我在做什么错?

如何在Oracle SQL Developer中使用variables?

下面是在SQL Server 2000中使用variables的一个例子。 DECLARE @EmpIDVar INT SET @EmpIDVar = 1234 SELECT * FROM Employees WHERE EmployeeID = @EmpIDVar 我想在Oracle中使用SQL Developer做同样的事情,而不会增加复杂性。 这似乎是一个非常简单的事情,但我找不到一个简单的解决scheme。 我该怎么做?

SQLite – replacestring的一部分

是否有可能在SQLite表中使用SQL来replace部分string? 例如,我有一个表格,其中一个字段包含文件的path。 是否有可能取代部分string,例如 c:\afolder\afilename.bmp 变 c:\anewfolder\afilename.bmp ?

标准使用'Z'而不是NULL来表示缺失的数据?

在是否应该使用NULL的参数之外:我负责使用NULL表示“丢失或从未input”数据的现有数据库。 它与空string不同,意思是“用户设置了这个值,而且他们select了”空“。 项目的另外一个承包商坚定地坚持“不存在NULL,我从来不使用NULL,也不应该使用NULL”。 然而,让我感到困惑的是,由于承包商的团队确认了“缺less/从不进入”和“有意清空或由用户指示为未知”之间的区别,他们在其代码和存储过程中使用单个字符“Z”在整个数据库的其余部分表示“丢失/从不进入”,其含义与NULL相同。 尽pipe我们的共享客户已经要求改变这一点,而且我也支持这个请求,但是团队认为这是DBA中比我更先进的“标准实践”。 他们不愿意单独根据我的无知请求更改为使用NULL。 那么,谁能帮我克服我的无知? SQL专家中是否有任何标准或一小组个人,甚至是一个大声的提倡使用“Z”代替NULL的声音? 更新 我有一个承包商的回应补充。 以下是当客户要求删除特殊值以允许在没有数据的列中允许NULL时他所说的内容: 基本上,我devise的数据库,以尽可能避免NULL。 这是理由: • string[VARCHAR]字段中的NULL是不必要的,因为空(零长度)string提供完全相同的信息。 • 整数字段(例如,ID值)中的NULL可以通过使用永远不会出现在数据中的值来处理(例如,对于整数IDENTITY字段,则为-1)。 date字段中的NULL可能很容易造成date计算的复杂性。 例如,在计算date差异的逻辑(如[RecoveryDate]和[OnsetDate]之间的天数差异)中,如果一个或两个date都为NULL,则逻辑将爆炸 – 除非为两个date为NULL。 这是额外的工作和额外的处理。 如果[RecoveryDate]和[OnsetDate](例如“1/1/1900”)使用“default”或“placeholder”date,math计算可能会显示“exception”值 – 但date逻辑不会被炸毁。 传统上,NULL处理是开发人员在存储过程中犯错的区域。 在我作为DBA的15年中,我发现尽可能避免NULL。 这似乎validation了对这个问题的主要负面反应。 而不是应用可接受的6NF方法来deviseNULL,特殊值用于“尽可能避免NULL”。 我以开放的态度发表了这个问题,很高兴我对“NULL是有用的/ NULL是邪恶的”辩论有了更多的了解,但是现在我很舒服地将“特殊值”方法标记为完全无稽之谈。 一个空的(零长度)string提供完全相同的信息。 不,它不; 在我们正在修改的现有数据库中,NULL表示“从不input”,空string表示“input为空”。 传统上,NULL处理是开发人员在存储过程中犯错的区域。 是的,但成千上万的开发人员已经犯了数千次错误,而避免这些错误的经验教训和注意事项是已知的并且是有logging的。 正如这里所提到的那样:无论你接受还是拒绝NULL,缺失值的表示都是一个解决的问题 。 没有必要发明一种新的解决scheme,因为开发人员继续制造易于克服(易于识别)的错误。 作为一个脚注:我已经是DBE和开发人员20多年了(这当然有足够的时间让我知道数据库工程师和数据库pipe理员之间的差异)。 在我整个职业生涯中,我一直都是在“有用”的阵营,虽然我知道有几个非常聪明的人不同意。 我对“特殊价值”方法持怀疑态度,但对于“如何避免以正确方法行事”这一学者坚持不懈,坚持不懈。 我总是喜欢学习新东西,20年后我仍然有很多东西要学。 感谢所有为此作出贡献的人士提供有用的讨论。