Tag: tsql

Linq to Sql:多个左外连接

我遇到了一些麻烦,弄清楚如何使用LINQ to SQL使用多个左外连接。 我明白如何使用一个左外连接。 我正在使用VB.NET。 以下是我的SQL语法。 T-SQL SELECT o.OrderNumber, v.VendorName, s.StatusName FROM Orders o LEFT OUTER JOIN Vendors v ON v.Id = o.VendorId LEFT OUTER JOIN Status s ON s.Id = o.StatusId WHERE o.OrderNumber >= 100000 AND o.OrderNumber <= 200000

连接行值T-SQL

我正在试图将一些数据汇总在一起,需要连接其中一个表的行值。 这里是基本的表结构: 评测 ReviewID ReviewDate 评审 ReviewerID ReviewID UserID 用户 UserID FName LName 这是M:M的关系。 每个评论可以有许多评论者; 每个用户可以与许多评论相关联。 基本上,我只想看到的是Review.ReviewID,Reviews.ReviewDate和该评论的所有关联用户的FName的连接string(逗号分隔)。 代替: ReviewID—ReviewDate—User 1———-12/1/2009—-Bob 1———-12/1/2009—-Joe 1———-12/1/2009—-Frank 2———-12/9/2009—-Sue 2———-12/9/2009—-Alice 显示这个: ReviewID—ReviewDate—-Users 1———-12/1/2009—–Bob, Joe, Frank 2———-12/9/2009—–Sue, Alice 我发现这篇文章描述了一些方法来做到这一点,但其中大多数似乎只处理一个表,而不是多个; 不幸的是,我的SQL-fu不够强大,不能适应我的情况。 我特别感兴趣的是使用FOR XML PATH()的那个网站上的例子,因为这看起来是最干净和最直接的。 SELECT p1.CategoryId, ( SELECT ProductName + ', ' FROM Northwind.dbo.Products p2 WHERE p2.CategoryId = p1.CategoryId ORDER BY ProductName FOR […]

如何获得sp_executesql结果到一个variables?

我有一块我需要执行的dynamicSQL,然后我需要将结果存储到一个variables中。 我知道我可以使用sp_executesql但无法find有关如何执行此操作的明确示例。

计算运行总额/运行余额

我有一张桌子: create table Transactions(Tid int,amt int) 5行: insert into Transactions values(1, 100) insert into Transactions values(2, -50) insert into Transactions values(3, 100) insert into Transactions values(4, -100) insert into Transactions values(5, 200) 期望的输出: TID amt balance — —– ——- 1 100 100 2 -50 50 3 100 150 4 -100 50 5 200 250 基本上第一笔logging的余额将会与第二笔余额相同,第二笔余额将会加上以前的余额+当前的amt […]

varchar(500)通过varchar(8000)有优势吗?

我已经阅读了MSDN论坛上的这个,我还不清楚。 我认为这是正确的:Varchar(max)将被存储为文本数据types,所以有缺点。 所以,让我们说你的领域将可靠地低于8000个字符。 像我的数据库表中的BusinessName字段一样。 事实上,一个企业名称可能总是在500个字符以下(拉出一个数字)。 我似乎有很多varchar字段在8k字符数下运行。 所以我应该使该字段varchar(500),而不是varchar(8000)? 从我所了解的SQL来看,这两者之间没有任何区别。 所以,为了使生活变得简单,我想将所有的varchar字段定义为varchar(8000)。 这有什么缺点吗? 相关: varchar列的大小 (我不觉得这个回答我的问题)。

用T-SQL创build一个date

我试图将个别部分,如12,1,2007date转换为SQL Server 2005中的date时间。我已经尝试了以下: CAST(DATEPART(year, DATE)+'-'+ DATEPART(month, DATE) +'-'+ DATEPART(day, DATE) AS DATETIME) 但是这会导致错误的date。 将三个date值转换为适当的date时间格式的正确方法是什么?

SQL JOIN与IN性能?

我有一个情况,使用JOIN或IN会给我正确的结果…通常有更好的性能,为什么? 多less取决于你正在运行的数据库服务器? (FYI我正在使用MSSQL)

如何在T-SQL存储过程中使用可选参数?

我正在创build一个存储过程来通过一个表进行search。 我有许多不同的search字段,所有这些都是可选的。 有没有办法来创build一个存储过程,将处理这个? 假设我有一个包含四个字段的表:ID,FirstName,LastName和Title。 我可以做这样的事情: CREATE PROCEDURE spDoSearch @FirstName varchar(25) = null, @LastName varchar(25) = null, @Title varchar(25) = null AS BEGIN SELECT ID, FirstName, LastName, Title FROM tblUsers WHERE FirstName = ISNULL(@FirstName, FirstName) AND LastName = ISNULL(@LastName, LastName) AND Title = ISNULL(@Title, Title) END 这种作品。 但是,它会忽略FirstName,LastName或Title为空的logging。 如果没有在search参数中指定标题,我想包括Title为NULL的logging – 对于FirstName和LastName是相同的。 我知道我可以用dynamicSQL做这个,但我想避免这种情况。

如何做像SQL LINUX中的%?

我有一个SQL程序,我正在试图变成Linq: SELECT O.Id, O.Name as Organization FROM Organizations O JOIN OrganizationsHierarchy OH ON O.Id=OH.OrganizationsId where OH.Hierarchy like '%/12/%' 我最关心的是: where OH.Hierarchy like '%/12/%' 我有一个存储像/ 1/3/12 /这样的层次结构的列,所以我只是使用%/ 12 /%来search它。 我的问题是,什么是Linq或.NET等效于使用百分号?

我怎样才能从SQL Server中的表中获取列名?

我想查询一个表的所有列的名称。 我发现如何做到这一点: 神谕 MySQL的 PostgreSQL的 但是我需要知道: 如何在Microsoft SQL Server (2008在我的情况下)这样做呢?