Tag: sql

相当于MySQL枚举数据types的SQL Server?

SQL Server 2008有一个像MySQL的enum数据types?

将主键添加到现有表

我有一个名为Persion的现有表。 在这个表中我有5列: persionId PNAME PMID Pdescription PAMT 当我创build这个表时,我将PersionId和Pname设置为主键。 我现在想要在主键 – PMID中添加一列。 我怎样才能写一个ALTER语句来做到这一点? (我已经在表中有1000条logging)

Ruby on Rails:从数据库列中获取最大值

目前我可以在我的数据库上进行直接的SQL查询: SELECT MAX(bar) FROM table_name 并返回该表中的最大值。 但是,当我在Rails中创build我认为是等效的调用时,它不起作用。 我打电话给: Bar.all(:select => "Max(bar)") 这只是返回: [#<Bar >] 在我所要求的栏目中是一系列的识别号码,我正在寻找最大的号码。 有没有其他方式在Rails中访问?

Sqlite:CURRENT_TIMESTAMP是格林尼治标准时间,而不是机器的时区

我有一个SQLite(V3)表与列定义: "timestamp" DATETIME DEFAULT CURRENT_TIMESTAMP 该数据库所在的服务器在CST时区。 当我插入到我的表中而不包括时间戳列时,sqlite会自动使用GMT中的当前时间戳填充该字段,而不是CST。 有没有办法来修改我的插入语句强制存储的时间戳在CST? 另一方面,它可能是更好的存储在格林尼治标准时间(例如,如果数据库被移动到不同的时区,例如),所以有办法我可以修改我的selectSQL将存储的时间戳转换为CST从表中提取它?

将HashBytes转换为VarChar

我想在SQL Server 2005中获得一个string值的MD5哈希值。我用下面的命令来做到这一点: SELECT HashBytes('MD5', 'HelloWorld') 但是,这将返回一个VarBinary而不是一个VarChar值。 如果我试图将0x68E109F0F40CA72A15E05CC22786F8E6转换为VarChar,我可以使用há ðô§*à\Â'†øæ来代替68E109F0F40CA72A15E05CC22786F8E6 。 有没有任何基于SQL的解决scheme? 是

一个LEFT OUTER JOIN如何能够返回比左表更多的logging?

我有一个非常基本的左外连接从左表中返回所有结果和一个更大的表中的一些额外的信息。 左表中包含4935条logging,当我左外部连接到一个额外的表logging数显着大。 据我所知,这是一个绝对的福音,一个LEFT OUTER JOIN将从左表中返回所有logging,右表中的匹配logging返回所有logging,任何不能匹配的行都返回null值,这是我的理解,它应该不可能返回比左边的表中更多的行,但是它们都是一样的! SQL查询如下: SELECT SUSP.Susp_Visits.SuspReason, SUSP.Susp_Visits.SiteID FROM SUSP.Susp_Visits LEFT OUTER JOIN DATA.Dim_Member ON SUSP.Susp_Visits.MemID = DATA.Dim_Member.MembershipNum 也许我在语法上犯了一个错误,或者我对LEFT OUTER JOIN的理解是不完整的,不pipe我在这里发疯的原因是什么,希望有人能解释这可能是怎么发生的? 后记 感谢grea的回答,我对LEFT OUTER JOINS的理解现在好多了,但是谁能提出这样一个查询可以被修改的方法,这样我只能得到左表中返回的logging数量呢? 这个查询纯粹是为了生成一个报告,重复的匹配只是混淆了事情。 /后记

在MySQL查询中一起使用DISTINCT和COUNT

是这样的可能性: SELECT DISTINCT COUNT(productId) WHERE keyword='$keyword' 我想要的是获得与关键字关联的唯一产品ID的数量。 同一个产品可能会与关键字相关联两次,或者更多,但是我希望每个产品ID只计算一次

在SQL服务器查询中用0replaceNULL

我开发了一个查询,并在前三列的结果我得到NULL 。 我如何用0replace它? Select c.rundate, sum(case when c.runstatus = 'Succeeded' then 1 end) as Succeeded, sum(case when c.runstatus = 'Failed' then 1 end) as Failed, sum(case when c.runstatus = 'Cancelled' then 1 end) as Cancelled, count(*) as Totalrun from ( Select a.name,case when b.run_status=0 Then 'Failed' when b.run_status=1 Then 'Succeeded' when b.run_status=2 Then 'Retry' Else […]

在Update语句中使用表别名的好方法?

我正在使用SQL Server,并尝试从同一个表中更新行。 我想使用表别名来提高可读性。 这是我目前的做法: UPDATE ra SET ra.ItemValue = rb.ItemValue FROM dbo.Rates ra INNER JOIN dbo.Rates rb ON ra.ResourceID = rb.ResourceID WHERE ra.PriceSched = 't8' AND rb.PriceSched = 't9' 有更简单/更好的方法吗?

在SQL中更改表的模式名称

我想在数据库中更改表Employees模式名称。 在当前表Employees数据库架构名称是dbo我想将其更改为exe 。 我该怎么做 ? 例: 从 dbo.Employees 至 exe.Employees 我试着用这个查询: ALTER SCHEMA exe TRANSFER dbo.Employees 但是这给了我一个错误: 无法更改模式“exe”,因为它不存在或您没有权限。 我错过了什么?