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

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

报告相同问题?

悬赏问题

  • ¥100 c语言,请帮蒟蒻看一个题
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)