技术CTO-关注编程入门知识,提供编程入门教程

您的位置: 首页 > 数据库 > sqlserver > 正文

SQL 修改带 UNION的存储过程

来源: 技术CTO 阅读:

alter  Procedure [dbo].[sproc_R_Get_List]

@ActiveOnly Bit = 0
AS
SET NOCOUNT ON
SELECT      R.RId AS ID, R.RName as Label, R.RCode as RCode,R.IsActive as IsActive
FROM      dbo.Ref_R R
WHERE 
(
(@ActiveOnly = 0) or  (R.IsActive = 1)
)

UNION

--LMY 2016 0622
      SELECT NULL AS ID, 'All Regions' AS Label, NULL AS RCode ,1 AS IsActive
      ORDER BY Label

SET NOCOUNT OFF


由于前台cs 文件改动,所以需要修改相应的存储过程,但是修改的时候报此错误:
union用于合并的所有查询必须在其目标列表中有相同数目的

后来查看之后发现少了union 那段语句 的红色字、 因为之前select语句加了红色的字。
union 的语句也要对应好相应的字段。

报错的原因是 union前后 select语句的相应字段必须要一致
union 或 union all 的两个子查询,列的数量必须一样多,如果数据类型有差别时,会尝试把下面的类型,转成上面的类型;
看你的sql是没问题的
你是不是没贴全代码
请问LZ的问题是什么? 你可以说没问题.
对啊,union上下字段要一致才行,可能你少了字段。改了就对了哈。

^_^ 如果您热爱技术、热爱编程,想与更多的朋友一起交流学习,欢迎加入本站官方QQ群:345733473 ^_^
上一篇:按月份查询
下一篇:最后一页