Tag: sql

如何在PostgreSQL查询中声明一个variables

如何在PostgreSQL 8.3查询中声明一个variables? 在MS SQL Server中,我可以这样做: DECLARE @myvar INT SET @myvar = 5 SELECT * FROM somewhere WHERE something = @myvar 我如何在PostgreSQL中做同样的事情? 根据文档variables被简单地声明为“名称types”,但这给了我一个语法错误: myvar INTEGER; 有人能给我一个正确的语法的例子吗?

EXECUTE权限在对象“xxxxxxx”,数据库“zzzzzzz”,模式“dbo”

我遇到问题执行一个function… 以下是我所做的: 使用sql server management studio创build一个函数。 它被成功创build。 然后我试着执行新创build的函数,这里是我得到的: EXECUTE权限在对象'xxxxxxx',数据库'zzzzzzz',模式'dbo'上被拒绝。

WITH(NOLOCK)vs SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

有人可以给我一些关于何时使用WITH (NOLOCK) ,而不是SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 每个的优点/缺点是什么? 你有没有意外的后果使用一个而不是另一个?

在SQL Server中隐含1或0的常数

在select语句中作为字段值使用时,是否可以表示1或0? 例如 在这种情况下,语句(它是select语句的一部分)ICourseBased是inttypes的。 case when FC.CourseId is not null then 1 else 0 end as IsCoursedBased 为了让它有点types,我必须投这两个值。 case when FC.CourseId is not null then cast(1 as bit) else cast(0 as bit) end as IsCoursedBased 有没有一种简单的方式来expression值的位types,而不必每次都投? (我正在使用MS SQL Server 2005)

在数据库中存储JSON与每个密钥都有一个新的列

我正在实施下面的模型来存储用户相关的数据在我的表 – 我有2列 – uid (主键)和一个meta数据列存储关于用户的JSON格式的其他数据。 uid | meta ————————————————– 1 | {name:['foo'], | emailid:['foo@bar.com','bar@foo.com']} ————————————————– 2 | {name:['sann'], | emailid:['sann@bar.com','sann@foo.com']} ————————————————– 这是一种更好的方法(性能明智,devise明智)比每列属性模型,其中表中将有许多列像uid , name , emailid 。 我喜欢的第一种模式是,你可以添加尽可能多的字段,没有限制。 另外,我想知道,现在我已经实现了第一个模型。 我如何对其执行查询,比如,我想获取所有像“foo”这样的名字的用户? 问题 – 在数据库中使用JSON或者按字段存储用户相关数据的更好方法(记住字段数量不固定)? 另外,如果实现了第一个模型,如何查询数据库如上所述? 我是否应该使用这两个模型,将所有可能通过查询search到的数据存储在单独的行中,并将其他数据存储在JSON中(是不同的行)? 更新 由于不会有太多的列需要执行search,使用这两个模型是明智的吗? 我需要search的数据的按键列和其他人的JSON(在同一个MySQL数据库中)?

在Oracle SQL Developer中使用tnsnames.ora

我正在评估Oracle SQL Developer 。 我的tnsnames.ora被填充,并且在tnsnames.ora定义的连接的tnsping正常工作。 尽pipe如此,SQL Developer不显示任何连接。 Oracle SQL Developer的提醒 ,如果 您的计算机上已经安装了Oracle客户端软件和tnsnames.ora文件,Oracle SQL Developer将自动从tnsnames.ora中定义的networking服务名称填充Connections导航器。 我也尝试设置我的TNS_ADMIN环境variables,但在重新启动SQL Developer后,仍然没有连接显示。 有任何想法吗? 任何人成功地使用SQL Developer和tnsnames.ora?

如何检索oracle序列的当前值而不增加它呢?

是否有一个SQL指令来检索不增加序列的值。 谢谢。 编辑和结论 如Justin Cave所述,尝试“保存”序号是没有用的 select a_seq.nextval from dual; 足以检查序列值。 我仍然保留奥利答案,因为它回答了最初的问题。 但是如果你想要这样做的话,问问你自己有没有修改序列的必要性。

将性(性别)存储在数据库中

我想用尽可能less的(大小/性能)成本将用户性别存储在数据库中。 到目前为止,有三种情况出现 与代码中的Enumalignment(1 =男,2 =女,3 =希望不需要这个)? char(1) – 存储m或f 位 (布尔) – 并调用列isMale(抱歉女士:P)? 没有与选项3打交道的性别歧视行为 🙂 我问的原因是因为这个答案提到字符 比布尔值 小 。 编辑 我应该澄清,我正在使用MS SQL 2008,它实际上有位数据types。 编辑#2 围绕2个以上性别的几个有趣的答案,并使用isMale列。 我希望我不会因为写这个而被标记,但是在我们现在的(现代)社会中,我猜布尔(性别)列的最合适的名字是hasPenis 。 编辑#3 原来这个问题是相当主观的,因为人们在下面的答案中提出了所有3个选项。 我会让社区注意他们认为是最好的解决scheme,因为我不知道接受哪个答案。 编辑#4 我开始倾向于@OMG小马的回答 ,主要是因为他有更高的代表和sql-server标签的金徽章 – 看起来他知道他在说什么。 来吧人, 投票 ! 🙂

整理是什么意思?

SQL中的sorting规则是什么意思,它有什么作用?

是SQL甚至TSQL图灵完成?

这是今天在办公室出现的。 我没有计划做这样的事情,但理论上你可以在SQL中编写一个编译器吗? 乍一看,在我看来,图灵是完整的,尽pipe对于许多类问题来说非常麻烦。 如果它不是完整的,那要做什么呢? 注意:我不想做任何事情,比如在SQL中编写一个编译器,我知道这将是一个愚蠢的事情,所以如果我们可以避免这个讨论,我将不胜感激。