Tag: tsql

T-SQL:与string连接相反 – 如何将string拆分成多个logging

可能重复: 在SQL中拆分string 我已经看到了几个与 SQL中string连接相关的问题 。 我想知道你将如何处理相反的问题:将分离的昏迷string拆分为多行数据: 可以说我有桌子: userTypedTags(userID,commaSeparatedTags) 'one entry per user tags(tagID,name) 并希望将数据插入到表中 userTag(userID,tagID) 'multiple entries per user 启发由哪些标签不在数据库中? 题 编辑 感谢您的答案,实际上多一个值得接受,但我只能select一个, 由凯德Roux提出的recursion解决scheme似乎相当干净。 它适用于SQL Server 2005及更高版本。 对于早期版本的SQL Server,可以使用由miies提供的解决scheme。 对于使用文本数据typeswcm答案将是有帮助的。 再次感谢。

将逗号分隔的string转换为单独的行

我有一个像这样的SQL表: | SomeID | OtherID | Data +—————-+————-+——————- | abcdef-….. | cdef123-… | 18,20,22 | abcdef-….. | 4554a24-… | 17,19 | 987654-….. | 12324a2-… | 13,19,20 有没有一个查询,我可以执行一个查询,如SELECT OtherID, SplitData WHERE SomeID = 'abcdef-…….' ,返回单独的行,如下所示: | OtherID | SplitData +————-+——————- | cdef123-… | 18 | cdef123-… | 20 | cdef123-… | 22 | 4554a24-… | 17 […]

如何从SQL Server中的SELECT进行更新?

在SQL Server中,可以使用SELECT语句插入到表中: INSERT INTO Table (col1, col2, col3) SELECT col1, col2, col3 FROM other_table WHERE sql = 'cool' 是否也可以通过SELECT进行更新 ? 我有一个包含值的临时表,并希望使用这些值更新另一个表。 也许是这样的: UPDATE Table SET col1, col2 SELECT col1, col2 FROM other_table WHERE sql = 'cool' WHERE Table.id = other_table.id

计算在SQL Server中的运行总计

想象一下下面的表(称为TestTable ): id somedate somevalue — ——– ——— 45 01/Jan/09 3 23 08/Jan/09 5 12 02/Feb/09 0 77 14/Feb/09 7 39 20/Feb/09 34 33 02/Mar/09 6 我想要一个查询,按date顺序返回一个正在运行的总数,如: id somedate somevalue runningtotal — ——– ——— ———— 45 01/Jan/09 3 3 23 08/Jan/09 5 8 12 02/Feb/09 0 8 77 14/Feb/09 7 15 39 20/Feb/09 34 49 […]

将存储过程的结果插入临时表中

如何做一个SELECT * INTO [temp table] FROM [stored procedure] ? 不是FROM [Table]和没有定义[temp table] ? 从BusinessLine中select所有数据到tmpBusLine工作正常。 select * into tmpBusLine from BusinessLine 我正在尝试相同的,但使用返回数据的存储过程,是不完全相同的。 select * into tmpBusLine from exec getBusinessLineHistory '16 Mar 2009' 输出消息: Msg 156,Level 15,State 1,Line 2关键字'exec'附近的语法不正确。 我已经阅读了几个创build与输出存储过程相同的结构的临时表的例子,这工作正常,但它不会提供任何列。

我如何删除重复的行?

从相当大的表中删除重复行的最佳方法是什么(即300,000行以上)? 由于RowID标识字段的存在,行当然不会是完美的重复。 MyTable ———– RowID int not null identity(1,1) primary key, Col1 varchar(20) not null, Col2 varchar(2048) not null, Col3 tinyint not null

SQL ServerdynamicPIVOT查询?

我的任务是提出翻译以下数据的方法: date category amount 1/1/2012 ABC 1000.00 2/1/2012 DEF 500.00 2/1/2012 GHI 800.00 2/10/2012 DEF 700.00 3/1/2012 ABC 1100.00 进入以下内容: date ABC DEF GHI 1/1/2012 1000.00 2/1/2012 500.00 2/1/2012 800.00 2/10/2012 700.00 3/1/2012 1100.00 空白点可以是空白或空白,要么是很好,而且类别需要是dynamic的。 另一个可能的警告是,我们将以有限的能力运行查询,这意味着临时表已经不存在了。 我试图研究和落在PIVOT上,但是我从来没有用过这个,但是我真的不明白它,尽pipe我尽了最大的努力想办法解决这个问题。 任何人都可以指向正确的方向吗?

SQL Server:列到行

寻找优雅的(或任何)解决方案将列转换为行。 这里是一个例子:我有一个表格,具有以下模式: [ID] [EntityID] [Indicator1] [Indicator2] [Indicator3] … [Indicator150] 这是我想得到的结果: [ID] [EntityId] [IndicatorName] [IndicatorValue] 结果值将是: 1 1 'Indicator1' 'Value of Indicator 1 for entity 1' 2 1 'Indicator2' 'Value of Indicator 2 for entity 1' 3 1 'Indicator3' 'Value of Indicator 3 for entity 1' 4 2 'Indicator1' 'Value of Indicator 1 for entity 2' […]

如何列出在SQL Server中引用给定表的所有外键?

我需要删除SQL Server数据库中高度被引用的表。 我怎样才能得到所有的外键约束,我将需要删除,以删除表的列表? (在管理工作室的图形用户界面中点击SQL应该更好。)

如何在TSQL Select中为每行生成随机数字?

我需要一个不同的随机数在我的表中的每一行。 下面看似明显的代码对每一行使用相同的随机值。 SELECT table_name, RAND() magic_number FROM information_schema.tables 我想要一个INT或一个FLOAT出来。 其余的事情是我将使用随机数字来创建一个从知道日期随机日期偏移量,例如从开始日期偏移1-14天。 这是针对Microsoft SQL Server 2000的。