SQL:如何把多行查询结果,作为一行返回
2009-11-23 22:33
501 查看
CREATE FUNCTION dbo.UF_GetInvoiceSerials( @bizCode VARCHAR(10))
RETURNS VARCHAR(100)
AS
BEGIN
DECLARE @ret AS VARCHAR(1000)
SELECT @ret=Coalesce(@ret + ', ','') +
CASE e.ID
WHEN '1' THEN c.InvoiceNo
WHEN '2' THEN d.ExpenseNO
ELSE 'N/A'
END
FROM dbo.Business a WITH(NOLOCK)
LEFT JOIN dbo.Asset_Card b WITH(NOLOCK)
ON b.BusinessID = a.ID
LEFT JOIN dbo.Equipment_Card c WITH(NOLOCK)
ON c.Asset_CardID = b.ID
LEFT JOIN dbo.FurnitureCard d WITH(NOLOCK)
ON d.Asset_CardID = b.ID
LEFT JOIN dbo.Assert_Type e WITH(NOLOCK)
ON e.ID = b.Assert_TypeID
WHERE a.BusinessCode=@bizCode
RETURN Isnull(@ret,'N/A')
END
+++++++++++++++++++++++++++++++++++++++++
RETURNS VARCHAR(100)
AS
BEGIN
DECLARE @ret AS VARCHAR(1000)
SELECT @ret=Coalesce(@ret + ', ','') +
CASE e.ID
WHEN '1' THEN c.InvoiceNo
WHEN '2' THEN d.ExpenseNO
ELSE 'N/A'
END
FROM dbo.Business a WITH(NOLOCK)
LEFT JOIN dbo.Asset_Card b WITH(NOLOCK)
ON b.BusinessID = a.ID
LEFT JOIN dbo.Equipment_Card c WITH(NOLOCK)
ON c.Asset_CardID = b.ID
LEFT JOIN dbo.FurnitureCard d WITH(NOLOCK)
ON d.Asset_CardID = b.ID
LEFT JOIN dbo.Assert_Type e WITH(NOLOCK)
ON e.ID = b.Assert_TypeID
WHERE a.BusinessCode=@bizCode
RETURN Isnull(@ret,'N/A')
END
+++++++++++++++++++++++++++++++++++++++++
相关文章推荐
- 在使用Hibernate时,因为一个查询需要更多的表连接而要使用SQL来解决性能问题。然而返回的结果集中包含了没有映射的Entity类中的表字段,在这个SQL中还有使用如何将层次关系的父子结点显示为横行
- 如何从页面输入SQL查询条件得到后台结果返回前台页面
- SQL如何合并查询结果
- 如何使你的Sql 语句可以和null 值比较得到正确的结果,而不是永远都返回0条记录
- Mysql组合查询-UNION-多个SELECT语句作为单个查询结果返回
- 如何对存储过程返回的结果进行条件查询
- Sql分组查询,如何把纵向显示的结果变成横向显示
- mysql如何实现多行查询结果合并成一行
- Querying Microsoft SQL Server 2012 读书笔记:查询和管理XML数据 1 -使用FOR XML返回XML结果集
- sql将多行查询结果显示在一行用,号隔开
- SQL中查询没有记录如何返回0?
- java如何获取SQL查询结果集中的行数和列数
- Querying Microsoft SQL Server 2012 读书笔记:查询和管理XML数据 1 -使用FOR XML返回XML结果集
- Sql分组查询,如何把纵向显示的结果变成横向显示
- 如何让SELECT 查询结果额外增加自动递增序号_SQL技巧
- SQL Management Studio中返回长查询结果被截断的问题
- Mybatis按SQL查询字段的顺序返回查询结果
- 将SQL查询结果以字符串形式返回
- java jdbc调用oracle的函数或过程返回SQL语句查询的结果集
- CI框架,select 查询sql,没有结果是返回false还是空数组? 什么情况下返回false?