由于业务需要,需要根据不同的条件,在CURSOR里怎么拼各种where条件?
由于在IS下面不能写逻辑,哪位高手告诉一下怎么实现?

解决方案 »

  1.   

    -- 定义你的查询
    DECLARE
    @sql nvarchar(4000)
    SELECT
    @sql = N'
    select * from sysobjects -- 你的 sql 语句, 因为是拼字符串的, 所以条件要怎么弄就怎么弄
    '-- 定义游标
    DECLARE
    @cursor CURSORSELECT
    @sql = N'
    SET @cursor = CURSOR
    FOR
    ' + @sql + N'
    OPEN @cursor
    '
    EXEC sp_executesql @sql, N'@cursor CURSOR OUTPUT', @cursor OUTPUT-- 游标循环
    FETCH @cursorCLOSE @cursor
    DEALLOCATE @cursor
      

  2.   

    -- 定义你的查询
    DECLARE
    @sql nvarchar(4000)
    SELECT
    @sql = N'
    select * from sysobjects -- 你的 sql 语句, 因为是拼字符串的, 所以条件要怎么弄就怎么弄
    '-- 定义游标
    DECLARE
    @cursor CURSORSELECT
    @sql = N'
    SET @cursor = CURSOR
    FOR
    ' + @sql + N'
    OPEN @cursor
    '
    EXEC sp_executesql @sql, N'@cursor CURSOR OUTPUT', @cursor OUTPUT-- 游标循环
    FETCH @cursorCLOSE @cursor
    DEALLOCATE @cursor
      

  3.   

    -- 定义你的查询
    DECLARE
    @sql nvarchar(4000)
    SELECT
    @sql = N'
    select * from sysobjects -- 你的 sql 语句, 因为是拼字符串的, 所以条件要怎么弄就怎么弄
    '-- 定义游标
    DECLARE
    @cursor CURSORSELECT
    @sql = N'
    SET @cursor = CURSOR
    FOR
    ' + @sql + N'
    OPEN @cursor
    '
    EXEC sp_executesql @sql, N'@cursor CURSOR OUTPUT', @cursor OUTPUT-- 游标循环
    FETCH @cursorCLOSE @cursor
    DEALLOCATE @cursor
      

  4.   

    -- 定义你的查询
    DECLARE
    @sql nvarchar(4000)
    SELECT
    @sql = N'
    select * from sysobjects -- 你的 sql 语句, 因为是拼字符串的, 所以条件要怎么弄就怎么弄
    '-- 定义游标
    DECLARE
    @cursor CURSORSELECT
    @sql = N'
    SET @cursor = CURSOR
    FOR
    ' + @sql + N'
    OPEN @cursor
    '
    EXEC sp_executesql @sql, N'@cursor CURSOR OUTPUT', @cursor OUTPUT-- 游标循环
    FETCH @cursorCLOSE @cursor
    DEALLOCATE @cursor
      

  5.   

    你是sql server么?
    我是oracle。
      

  6.   

    oracle的请转到对应的版由于你在发帖的时候没有说明, 所以是 sql server的