Tag: sql

如何在多个列中查找重复项?

所以我想要做下面这样的sql代码: select s.id, s.name,s.city from stuff s group by s.name having count(where city and name are identical) > 1 为了产生以下内容(但是忽略只有名字或城市匹配的地方,它必须在两列上): id name city 904834 jim London 904835 jim London 90145 Fred Paris 90132 Fred Paris 90133 Fred Paris

主键与聚类索引的关系

没有聚集索引,TABLE可以有主键吗? 和TABLE可以没有主键的聚簇索引? 任何人都可以简单地告诉我主键和聚集索引的关系吗?

SQL更新只在列被修改时触发

通过查看其他示例我已经想出了以下,但它似乎并没有工作,因为我想:我希望它只更新修改后的信息,如果QtyToRepair值已更新…但它不去做。 如果我在哪里注释掉,修改后的信息在每种情况下都会更新。 正如我所说的,其他例子让我感到乐观。 任何线索表示赞赏。 谢谢。 沃尔特 ALTER TRIGGER [dbo].[tr_SCHEDULE_Modified] ON [dbo].[SCHEDULE] AFTER UPDATE AS BEGIN SET NOCOUNT ON; UPDATE SCHEDULE SET modified = GETDATE() , ModifiedUser = SUSER_NAME() , ModifiedHost = HOST_NAME() FROM SCHEDULE S INNER JOIN Inserted I on S.OrderNo = I.OrderNo and S.PartNumber = I.PartNumber WHERE S.QtyToRepair <> I.QtyToRepair END

如何使视图列NOT NULL

我想创build一个视图,我希望列只能是真或假。 但是,似乎无论我做什么,SQL Server(2008)都认为我的位列可以以某种方式为空。 我有一个名为“Product”的表,其中列“状态”是INT, NULL 。 在一个视图中,我想为Product中的每一行返回一行,如果Product.Status列等于3,则BIT列设置为true,否则位字段应为false。 示例SQL SELECT CAST( CASE ISNULL(Status, 0) WHEN 3 THEN 1 ELSE 0 END AS bit) AS HasStatus FROM dbo.Product 如果我将这个查询保存为一个视图并查看对象资源pipe理器中的列,则HasStatus列设置为BIT, NULL 。 但它不应该是NULL。 是否有一些神奇的SQL技巧,我可以用来强制这个列NOT NULL 。 请注意,如果我在CASE周围删除了CAST() ,则该列将被正确设置为NOT NULL ,但是该列的types将设置为INT ,这不是我想要的。 我希望它是BIT 。 🙂

SQL EXISTS语句如何工作?

我正在尝试学习SQL,并且很难理解EXISTS语句。 我遇到了这个关于“存在”的引用,不明白的地方: 使用exists操作符,子查询可以返回零个,一个或多个行,条件只是检查子查询是否返回任何行。 如果您查看子查询的select子句,您将看到它由单个文字(1)组成; 由于包含查询中的条件只需要知道返回了多less行,所以子查询返回的实际数据是不相关的。 我不明白的是外部查询如何知道子查询的哪一行? 例如: SELECT * FROM suppliers WHERE EXISTS (select * from orders where suppliers.supplier_id = orders.supplier_id); 据我所知,如果供应商和订单表中的ID匹配,则子查询将返回true,并输出供应商表中匹配行的所有列。 我没有得到的是子查询如何传递哪个特定的行(可以说供应商ID为25的行)应该被打印,如果只返回true或false。 在我看来,外部查询和子查询之间没有关系。

如何连接sql server中查询中的文本?

以下SQL: SELECT notes + 'SomeText' FROM NotesTable a 给出错误: 数据typesnvarchar和文本在添加运算符中不兼容。

如何从SQL Server Windows模式更改为混合模式(SQL Server 2008)?

我已经安装了SQL Server 2008 Express Edition,但是由于我错误地保留了Windows身份validation模式。 现在我想将其更改为SQL Server混合模式。 我怎样才能做到这一点?

我可以在脚本或存储过程中创build一次性使用function吗?

在SQL Server 2005中,是否有一个一次性使用的概念,或在SQL脚本或存储过程中声明的本地函数? 我想在我正在编写的脚本中抽象出一些复杂性,但是它需要能够声明一个函数。 只是好奇。 谢谢!!

什么是SQL(语言)的好替代品?

我偶尔会听到有关SQL如何糟糕的事情,这不是一种好语言,但我从来没有听说过很多关于它的替代品。 那么,是否有其他好的语言可以达到同样的目的(数据库访问)呢,还有什么比SQL更好呢? 有没有好的数据库使用这种替代语言? 编辑:我熟悉SQL,并一直使用它。 我没有问题,只是对可能存在的替代品感兴趣,为什么人们更喜欢它们。 我也没有寻找其他types的数据库(NoSQL的运动),只是访问数据库的不同方式。

从date时间减去一天

我有一个查询来获取datetime之间的date差异为: SELECT DATEDIFF(DAY, @CreatedDate , GETDATE()) Ex : SELECT DATEDIFF(DAY, '2013-03-13 00:00:00.000' , GETDATE()) 我需要有一个这样的查询工作,这将从创build的一天中减去一天: SELECT DATEDIFF(DAY, **@CreatedDate- 1** , GETDATE())