各位大侠,小弟刚接触SQL,写了个存储过程,但执行时没有数据显示,语句如下: 感谢了,小弟在线等,(SQL 2008)

USE [Oracle_toptest_ds14]
GO
/****** Object: StoredProcedure [dbo].[PROCapmt540] Script Date: 04/02/2012 20:03:30 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[PROCapmt540]
@pmm01 nvarchar(16),
@pmm04a datetime2(0),
@pmm04b datetime2(0)
as
BEGIN
IF(@pmm01 = NULL AND @pmm04a = NULL AND @pmm04b = NULL)
BEGIN
SELECT * FROM apmt540 a
RETURN;
END
IF (@pmm01 <> NULL AND @pmm04a = NULL AND @pmm04b = NULL)
BEGIN
SELECT * FROM apmt540 a WHERE pmm01=@pmm01
RETURN;
END
IF (@pmm01 = NULL AND @pmm04a <> NULL AND @pmm04b <> NULL )
BEGIN
SELECT * FROM apmt540 WHERE pmm04<=@pmm04a AND pmm04>=@pmm04b
RETURN;
END
END

第1个回答  2012-04-04
要有具体环境,包括你用的数据库,才好测试,
建议跟踪执行下,或者 加上错误 处理语句 看看到底哪里出问题了
第2个回答  2012-04-02
貌似条件都没有达到,你可以在最后加个ELSE 语句,输出点什么,看看是不是这样。追问

您好,感谢回答,我修改一下:代码如图片(因为百度限制打不了那么多字符)
问题是:
1.可是我给@pmnud03赋值会查询到所有的数据
2.我给@pmnud03赋值同是给@star和@end赋值也会查询到所有值
3.但我单独给@star和@end赋值也就会查询想要值

帮帮我看看是哪里的问题。执行时都没有报错误。

追答

跟你测试的数据有问题。测试时你的@pmudu03是1位的字符码???如果不是当然只能返回最后else里的查询,也就是查询到所有值。
也许你应该这样判断 if len(@pmudu03)>=1 and ...

本回答被提问者采纳

SQLServer2005新建存储过程后为什么没在列表中出现
存储过程列表中没有是因为你没有执行这句sql语句(前提是你的存储过程没有语法错误!) 或者没有刷新!方法:1.打开sqlserver 2005,选中你要新建存储过程的database 2.点击"新建查询",将sql语句粘贴进去,然后点击"执行" (红色感叹号图标)3.当显示successful之后,你就可以在当前database里面,programmability->...

...数据连接OK,但设置数据库,出现错误,请各位大侠帮帮看看怎么解决...
1、win+r快捷键,打开开始运行,再输入下图命令确定。2、打开SQL Server Configuration Manager,找到SQL网络配置,点击MSSSQL的协议。3、然后看到右侧的TCP\/IP协议是禁用状态,右键点击这个协议。4、点击后显示启用TCP\/IP服务即可,如下图所示。

请教各位大侠,刚刚做数据分析,有一个数据匹配的问题,暂时没有积分积累...
这个sas估计会做,excel不熟悉,sas我会先B、C两列拼接字符串,然后以A列为id进行转置,转置后如果数据不同就提出来。不知excel能不能做到。excel可以用if语句可以吗?我想还是得转置,A相同的转成一行。然后再if语句判断。

SQL语句:怎样显示表里不存在的数据
那变量表总可以建吧 declare @taba TABLE([tabid] [varchar(20)] NOT NULL)insert @taba values('1111111111111')insert @taba values('333333333333')...select * from @taba where tabid not in (select id from AAA)没有个存储的地方是输出不了身份证号的,所以必须有临时表或者变量表 要不也...

.net写了一个事物,运行的时候 提示说sqlconnection不支持并行事物.恳请...
同一个事务,只能运行一个,你检查一下conn.BegionTransaction吧,他可能是统一给了一个命名

在SQL server数据库中为什么要建立存储过程,怎样建立存储过程?,望各位...
大大提高数据库的安全。存储过程可以在sql管理客户端界面建立,修改,也可以利用语句建立的。例子:方式一:打开sql服务器管理工具客户端:进入代码编辑:代码中【begin】 和【end】之间写你的代码,做完后点击“执行”;方式二:就是把右边编辑窗的代码通过客户端软件送到sql服务器上执行 ...

各位大侠们,帮小弟设计个qq号藏头诗吧,本人qq:568574885。我没有...
藏头:五年得轻安,六义动花笺。八水宅连冈,五日一朝天。七夕雨初霁,四极威仪异。八月西风起,八趾在沙砾。五色瑞荣光。五尺乌犍托此生,六月门前也似冰。八月九月正长夜,五十馀年四海清。七雄雄雌犹未分,四明山下莫经春。八埏之外曰八荒,八十山僧眼未昏。五言破的人共推。藏尾:而为例之情...

请问各位大侠:oracle的存储过程返回值如果有0.2等这类小数时,为何前面...
这是显示设置的问题 你可以将这玩意儿转换为字符串显示 select ltrim(to_char(1\/2,'99990.00')) from dual

请各位大侠给出用VB.NET连接oracle数据库并执行sql查询语句的代码示例...
Dim OraSession As Object '会话对象 Dim OraDatabase As Object '数据库对象 Dim OraDynaset As Object'动态集对象 Dim OraDatabase As Object’字段集对象 Set OraSession =CreateObject("OracleInProcServer.XOraSession")Set OraDatabase=OraSession.CreateDatabase ("Demo","scott\/tiger",0&)'建立...

...现在想不起来了,取消隐藏不起作用,麻烦各位大侠拔刀相助,万分感谢...
把鼠标移到三角形下面一点,会出现一个可以上下拉的符号,你下拉就行了.

相似回答