BEGIN..END无法在嵌套的IF..ELSE中工作

时间:2015-05-15 07:38:14

标签: sybase sybase-ase

我对嵌套的IF..ELSE条件中的BEGIN .. END感到困惑。 例如,当我尝试执行下面提到的查询时。它是 返回错误 - " ElSE附近的语法不正确.."

IF ( ISNULL(@tin,'')=''AND ISNULL(@prpr_ntwrk,'')<>'' )
BEGIN
    IF (ISNULL(@prpr_ntwrk,'')='P')
    BEGIN
            -- CODE     
    END                         
    ELSE 
    BEGIN
            -- CODE
    END

END

请建议。

2 个答案:

答案 0 :(得分:1)

以下是我的建议:

1.-在代码的这一部分提供更多的空格,以便它清晰易读并避免出现问题。

IF ( ISNULL(@tin,'')=''AND ISNULL(@prpr_ntwrk,'')<>'' )

2.-在最后一个END之后插入一个新行

3.-使用isql在终端上运行所有内容,因为交互式SQL有时会出错#/ p>

4.-在if和end之间发布代码。

希望有所帮助

答案 1 :(得分:1)

以下代码在ASE 15.7.0上执行

def get_unnamed_groups(match_obj):
    index = 1
    while True:
        try: yield match_obj.group(index)
        except IndexError: break
        index += 1

请注意,ASE与空存根混淆了#34; - Code&#34;在最初的例子中。

你的第一个IF声明可能不会做你想要的,但我坚持要求的问题。