works004 2010-08-18 14:23
浏览 326
已采纳

存储过程遇到的问题~~查询不出来

在存储过程中定义变量 @CaseID varchar(256)
AS
SELECT*FROM 表xxx WHERE 字段ID like '%'+rtrim(@ID)+'%'

我数据库里的ID是12345,我已经测试过,上面的代码效果是: 输入1 或12 或23 或34 或123 或2345 或345 等等, 只要是顺着排下来的输入条件都能查询到预期的结果,到此很圆满.
可是,我想输入125,也就是不顺着数字输入,根据125这个查询条件,或者124,或者235,或者25, 隔开输入查询条件就查不出来了. 怎么办? 帮个忙 谢谢!

  • 写回答

1条回答

  • works001 2010-08-18 14:25
    关注

    DECLARE @CaseID varchar(256)
    SET @CaseID = '125'
    SELECT * FROM [tb_tableName] WHERE 字段ID LIKE '%['+@CaseID+']%'

    上面这个正则查询就可以满足你的要求呀

    DECLARE @CaseID varchar(256)
    SET @CaseID = '19999'
    SELECT * FROM [tb_aTemp] WHERE 字段ID LIKE '%['+@CaseID+']%'

    TO:我用一个变量在SQL存储过程中可以返回一个结果.现在是想通过执行存储过程一次性返回多个结果,请问变量该怎么定义?

    RE:

    CREATE PROCEDURE SP_tableName(
    @CaseID NVARCHAR(50)
    )
    AS
    BEGIN
    SET NOCOUNT ON
    DECLARE INT @Identity
    SET @Identity = 0
    INSERT INTO tb_tableNameVALUES(@CaseID)
    SET @Identity = SCOPE_IDENTITY()

    IF (@Identity)>0
       BEGIN
    SELECT * FROM [tb_tableName] --这里根据你的查询条件,返回的多个需要的得到的字段
       END
    

    SET NOCOUNT OFF
    END
    GO

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 树莓派安卓APK系统签名
  • ¥15 maple软件,用solve求反函数出现rootof,怎么办?
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗