Please can you give me sample code for badi

Dear Freinds
         i have tried writing coding for the badi HRPAD00INFTY, but iam not able to get, my requirement is when the user enters for the ansal amount that amount
should be divided by 12 and should be defaulted for basic pay (p9008-bet01)  based on the wage type (p9008-lga01=MFPY),
i have calculated the value as , but now i have to assign the value to  p9008-bet01.
please let me know how i should code.
i am giving the code which is have written can you please let me know where i am wrong
method IF_EX_HRPAD00INFTY~AFTER_INPUT.
data: wa_pa0008 type pa0008.
select Single * from pa0008 into wa_pa0008 where pernr = NEW_INNNN-pernr .
if wa_pa0008-lga01 = 'MFPY'.
     new_innnn-bet01 = wa_pa0008-ansal / 12  -
here iam not able to assign  
endif.
endmethod.
regards
syamla

Hi pranesh
           thanks for  replying , but the only problem is i have to default the value
for bet 01 from ansal
ie from p0008-ansal to q0008-bet01.
then only the method
CALL METHOD cl_hr_pnnnn_type_cast=>prelp_to_pnnnn
EXPORTING
prelp = new_innnn
IMPORTING
pnnnn = wa_0008. " wa_9008
will trigger for me and th wa_0008 will be filled up.
since when i say create 0008 , then if i entering for ansal then i asking for entering
value for q0001-bet01 , since the wage type for which i have to default the bet01
will be there on the screen before only, so the screen expects that i have to enter the value for amount bet01, so that measn bet01 becomes mandatory,
the method will work for me if iam able to make the bet01 being filled automatically from the calcualtion ( as per my requiremnt) i.e ansal/100.
regards
shanti

Similar Messages

  • Hi guys please give me sample code for call transaction that handles error

    hi guys, please give me sample code for call transaction that handles error,
    please send me the sample code in which there should be all decleration part and everything, based on the sample code i will develop my code.
    please do help me as it is urgent.
    thanks and regards.
    prasadnn.

    Hi Prasad,
    Check this code.
    Source Code for BDC using Call Transaction
    *Code used to create BDC
    *& Report  ZBDC_EXAMPLE                                                *
    *& Example BDC program, which updates net price of item 00010 of a     *
    *& particular Purchase order(EBELN).                                   *
    REPORT  ZBDC_EXAMPLE  NO STANDARD PAGE HEADING
                          LINE-SIZE 132.
    Data declaration
    TABLES: ekko, ekpo.
    TYPES: BEGIN OF t_ekko,
        ebeln TYPE ekko-ebeln,
        waers TYPE ekko-waers,
        netpr TYPE ekpo-netpr,
        err_msg(73) TYPE c,
    END OF t_ekko.
    DATA: it_ekko  TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,
          wa_ekko  TYPE t_ekko,
          it_error TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,
          wa_error TYPE t_ekko,
          it_success TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,
          wa_success TYPE t_ekko.
    DATA: w_textout            LIKE t100-text.
    DATA: gd_update TYPE i,
          gd_lines TYPE i.
    *Used to store BDC data
    DATA: BEGIN OF bdc_tab OCCURS 0.
            INCLUDE STRUCTURE bdcdata.
    DATA: END OF bdc_tab.
    *Used to stores error information from CALL TRANSACTION Function Module
    DATA: BEGIN OF messtab OCCURS 0.
            INCLUDE STRUCTURE bdcmsgcoll.
    DATA: END OF messtab.
    *Screen declaration
    SELECTION-SCREEN BEGIN OF BLOCK block1 WITH FRAME
                                        TITLE text-001. "Purchase order Num
    SELECT-OPTIONS: so_ebeln FOR ekko-ebeln OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK block1.
    SELECTION-SCREEN BEGIN OF BLOCK block2 WITH FRAME
                                        TITLE text-002. "New NETPR value
    PARAMETERS:  p_newpr(14)   TYPE c obligatory.  "LIKE ekpo-netpr.
    SELECTION-SCREEN END OF BLOCK block2.
    *START-OF-SELECTION
    START-OF-SELECTION.
    Retrieve data from Purchase order table(EKKO)
      SELECT ekkoebeln ekkowaers ekpo~netpr
        INTO TABLE it_ekko
        FROM ekko AS ekko INNER JOIN ekpo AS ekpo
          ON ekpoebeln EQ ekkoebeln
       WHERE ekko~ebeln IN so_ebeln AND
             ekpo~ebelp EQ '10'.
    *END-OF-SELECTION
    END-OF-SELECTION.
    Check data has been retrieved ready for processing
      DESCRIBE TABLE it_ekko LINES gd_lines.
      IF gd_lines LE 0.
      Display message if no data has been retrieved
        MESSAGE i003(zp) WITH 'No Records Found'(001).
        LEAVE TO SCREEN 0.
      ELSE.
      Update Customer master data (instalment text)
        LOOP AT it_ekko INTO wa_ekko.
          PERFORM bdc_update.
        ENDLOOP.
      Display message confirming number of records updated
        IF gd_update GT 1.
          MESSAGE i003(zp) WITH gd_update 'Records updated'(002).
        ELSE.
          MESSAGE i003(zp) WITH gd_update 'Record updated'(003).
        ENDIF.
    Display Success Report
      Check Success table
        DESCRIBE TABLE it_success LINES gd_lines.
        IF gd_lines GT 0.
        Display result report column headings
          PERFORM display_column_headings.
        Display result report
          PERFORM display_report.
        ENDIF.
    Display Error Report
      Check errors table
        DESCRIBE TABLE it_error LINES gd_lines.
      If errors exist then display errors report
        IF gd_lines GT 0.
        Display errors report
          PERFORM display_error_headings.
          PERFORM display_error_report.
        ENDIF.
      ENDIF.
    *&      Form  DISPLAY_COLUMN_HEADINGS
          Display column headings
    FORM display_column_headings.
      WRITE:2 ' Success Report '(014) COLOR COL_POSITIVE.
      SKIP.
      WRITE:2 'The following records updated successfully:'(013).
      WRITE:/ sy-uline(42).
      FORMAT COLOR COL_HEADING.
      WRITE:/      sy-vline,
              (10) 'Purchase Order'(004), sy-vline,
              (11) 'Old Netpr'(005), sy-vline,
              (11) 'New Netpr'(006), sy-vline.
      WRITE:/ sy-uline(42).
    ENDFORM.                    " DISPLAY_COLUMN_HEADINGS
    *&      Form  BDC_UPDATE
          Populate BDC table and call transaction ME22
    FORM bdc_update.
      PERFORM dynpro USING:
          'X'   'SAPMM06E'        '0105',
          ' '   'BDC_CURSOR'      'RM06E-BSTNR',
          ' '   'RM06E-BSTNR'     wa_ekko-ebeln,
          ' '   'BDC_OKCODE'      '/00',                      "OK code
          'X'   'SAPMM06E'        '0120',
          ' '   'BDC_CURSOR'      'EKPO-NETPR(01)',
          ' '   'EKPO-NETPR(01)'  p_newpr,
          ' '   'BDC_OKCODE'      '=BU'.                      "OK code
    Call transaction to update customer instalment text
      CALL TRANSACTION 'ME22' USING bdc_tab MODE 'N' UPDATE 'S'
             MESSAGES INTO messtab.
    Check if update was succesful
      IF sy-subrc EQ 0.
        ADD 1 TO gd_update.
        APPEND wa_ekko TO it_success.
      ELSE.
      Retrieve error messages displayed during BDC update
        LOOP AT messtab WHERE msgtyp = 'E'.
        Builds actual message based on info returned from Call transaction
          CALL FUNCTION 'MESSAGE_TEXT_BUILD'
               EXPORTING
                    msgid               = messtab-msgid
                    msgnr               = messtab-msgnr
                    msgv1               = messtab-msgv1
                    msgv2               = messtab-msgv2
                    msgv3               = messtab-msgv3
                    msgv4               = messtab-msgv4
               IMPORTING
                    message_text_output = w_textout.
        ENDLOOP.
      Build error table ready for output
        wa_error = wa_ekko.
        wa_error-err_msg = w_textout.
        APPEND wa_error TO it_error.
        CLEAR: wa_error.
      ENDIF.
    Clear bdc date table
      CLEAR: bdc_tab.
      REFRESH: bdc_tab.
    ENDFORM.                    " BDC_UPDATE
          FORM DYNPRO                                                   *
          stores values to bdc table                                    *
    -->  DYNBEGIN                                                      *
    -->  NAME                                                          *
    -->  VALUE                                                         *
    FORM dynpro USING    dynbegin name value.
      IF dynbegin = 'X'.
        CLEAR bdc_tab.
        MOVE:  name TO bdc_tab-program,
               value TO bdc_tab-dynpro,
               'X'  TO bdc_tab-dynbegin.
        APPEND bdc_tab.
      ELSE.
        CLEAR bdc_tab.
        MOVE:  name TO bdc_tab-fnam,
               value TO bdc_tab-fval.
        APPEND bdc_tab.
      ENDIF.
    ENDFORM.                               " DYNPRO
    *&      Form  DISPLAY_REPORT
          Display Report
    FORM display_report.
      FORMAT COLOR COL_NORMAL.
    Loop at data table
      LOOP AT it_success INTO wa_success.
        WRITE:/      sy-vline,
                (10) wa_success-ebeln, sy-vline,
                (11) wa_success-netpr CURRENCY wa_success-waers, sy-vline,
                (11) p_newpr, sy-vline.
        CLEAR: wa_success.
      ENDLOOP.
      WRITE:/ sy-uline(42).
      REFRESH: it_success.
      FORMAT COLOR COL_BACKGROUND.
    ENDFORM.                    " DISPLAY_REPORT
    *&      Form  DISPLAY_ERROR_REPORT
          Display error report data
    FORM display_error_report.
      LOOP AT it_error INTO wa_error.
        WRITE:/      sy-vline,
                (10) wa_error-ebeln, sy-vline,
                (11) wa_error-netpr CURRENCY wa_error-waers, sy-vline,
                (73) wa_error-err_msg, sy-vline.
      ENDLOOP.
      WRITE:/ sy-uline(104).
      REFRESH: it_error.
    ENDFORM.                    " DISPLAY_ERROR_REPORT
    *&      Form  DISPLAY_ERROR_HEADINGS
          Display error report headings
    FORM display_error_headings.
      SKIP.
      WRITE:2 ' Error Report '(007) COLOR COL_NEGATIVE.
      SKIP.
      WRITE:2 'The following records failed during update:'(008).
      WRITE:/ sy-uline(104).
      FORMAT COLOR COL_HEADING.
      WRITE:/      sy-vline,
              (10) 'Purchase Order'(009), sy-vline,
              (11) 'Netpr'(010), sy-vline,
              (73) 'Error Message'(012), sy-vline.
      WRITE:/ sy-uline(104).
      FORMAT COLOR COL_NORMAL.
    ENDFORM.                    " DISPLAY_ERROR_HEADINGS
    Hope this resolves your query.
    Reward all the helpful answers.
    Regards

  • Can you give me some code ?

    Can you give me some code ?
    (my email address is [email protected])

    Please be specific in your request.
    Try my SQL PlusPlus
    It generates variety of SQL, PL/SQL and SQLPlus code
    have a nice day,
    regards,
    M. Armaghan Saqib
    * SQL PlusPlus: Add power to SQL Plus command line
    * SQL Link for XL: Integrate XL with Oracle
    * Oracle Developer Tutorial with Sample GL
    Download free: http://www.geocities.com/armaghan/
    --------------------------------------------

  • Can you share the source code for Customer ToughDay stress test tool?

    Hello,
    I would like to try Customer ToughDay tool (http://dev.day.com/docs/en/cq/current/testing/tough-day.html) for load testing of our author instances of CQ5. While I am able to execute the application, the logging with log4j seems to be configured incorrectly.
    Can you share the source code for toughday-5.5.jar?  I think it can be a very good starting point for those of us who are new to CQ5 and need to load test it.
    Thank you!

    Hi,
    I don't believe there are any differences between the two versions. But you can check the source code for the Numeric Limit Test in TestStand\Components\NI\StepTypes\CommonSubsteps. But the main part of the step is the Code Module and this bit the users supplies this.
    What has prompted this question?
    Regards
    Ray Farmer
    Regards
    Ray Farmer

  • (268625273) Q WSI-29 Can you give any performance benchmarks for WLS web services?

    Q<WSI-29> Can you give any performance benchmarks for WLS web services?
    A<WSI-29>: It is very difficult to quantify performance aspects of web services
    since they depend on so many variables including but not limited to: backend system
    processing by stateless session beans and message driven beans, size of XML SOAP
    message sent, system hardware (CPU speed, parallel processing, RAM speed) and
    system software (JVM type and version of WebLogic server). However, let me point
    out that the EJB backend processing of requests both have the best possible scalability
    within the EJB2.0 specification (both stateless session and message driven beans
    can be pooled) and servlets have a proven scalable track record. Thus it should
    be possible to scale your web service deployment to meet demand. The overhead
    in processing XML within the servlet can be significant depending on the size
    of XML data (either as a parameter or a return type). While WLS6.1 does not have
    any features to address this performance concern, WLS7.0 will feature Serializer
    and Deserializer classes which can be dedicated to the XML to Java and Java to
    XML translation (they can also be automatically be generated from a DTD, XML Schema
    or regular JavaBean).
    It is true that web services are not the fastest way to process client requests
    but BEA is committed to making WebLogic server the fastest possible service provider.
    Adam

    see http://www.oracle.com/support/products/oas/sparc30/html/ows08811.html

  • Can you give a document link for script logic for NW version7??

    Hi all,
        who can give a document link for script logic for nw version7??
        thanks in advance!!

    Hi Sheldon,
    I read through your "HOW to...Custom BADI for replicating Destination_App...." and it was great. However, Can this call also be used with WHEN/ENDWHEN statements? In the MS version, when using Destination_App, I was also able to map source accounts into the correct destination accounts as well as source E type dim to desination E type dim with the following script (the mapping to destination ID was stored as properties within the source dimensions).
    *INCLUDE SYSTEM_CONSTANTS.LGL     
    *SELECT(%OPACCT%, "[ID]", "OPACCOUNT", " [TRF_FPA] = 'Y'")
    *SKIP_DIM = COSTCTR
    *ADD_DIM = BRANDS
    *RENAME_DIM OPAccount = Account_F
    *RENAME_DIM CATEGORY = CATEGORY_F
    *RENAME_DIM ENTITY = MARKET
    *RENAME_DIM DATASRC = DATATYPE
    *XDIM_MEMBERSET ENTITY = %ENTITY_SET%
    *XDIM_MEMBERSET CATEGORY = %CATEGORY_SET%
    *XDIM_MEMBERSET TIME = %TIME_SET%     
    *XDIM_MEMBERSET OPACCOUNT = %OPACCT%
    *DESTINATION_APP = FPA
    *CLEAR_DESTINATION
    *DESTINATION OPACCOUNT = %OPACCT%
    *DESTINATION TIME = %TIME_SET%
    *DESTINATION CATEGORY = %CATEGORY_SET%
    *DESTINATION CURRENCY = LC,USD
    *WHEN ENTITY
    *IS %ENTITY_SET%
    *REC(ENTITY=COSTCTR.FPA_MKT,OPAccount=OPAccount.Consol_FPA)     
    *ENDWHEN     
    *COMMIT
    I have tried the following code in the NW version, and it won't validate. Do you know if there's a way to achieve this?
    *XDIM_MEMBERSET CATEGORY<>ACTUAL
    *XDIM_MEMBERSET ACCOUNTHR =BASE_ANNL_SAL,BONUS,BENEFITS_TAX
    *XDIM_MEMBERSET CURRENCY=LC
    *START_BADI DAPP
    DESTINATION_APP=CC_PLAN
    RENAME_DIM="ACCOUNTHR=ACCOUNTCC"
    WRITE=OFF
    *END_BADI
    *WHEN ACCOUNTHR
    *IS "BASE_ANNL_SAL","BONUS","BENEFITS_TAX"
    *REC(ACCOUNTCC=ACCOUNTHR.CCPLANACCT)     
    *ENDWHEN
    Regards,
    Karen

  • Can you give me some suggestions for encryption decryption

    ok i've written my own encryption decryption techniqu can you suggest me some better methods
    Attachments:
    EncrypDecrypt2.vi ‏59 KB

    karthik9 wrote:
    Not to publish ... this is very simple ... i just want to know should i improve this or scrap this
    You haven't replied but I guess I haven't answered your question either...
    Sure it works but from a LV programming standpoint it is very redundant and Rube Goldberg like.
    IMHO you should scrap what you have or at least clean it up.
    I am a long ways from being a LV expert but there are the things that pop right out at me when I see your code.
    You use identical code in three places, make it a sub-vi.
    Why start with a constant of -1 and increment it once inside your for-loop? This value will always be 0. 
    Don't use array size to set the number of iterations of your for-loop then use the iteration counter to index an array inside the loop, use auto indexing. 
    Your block diagram is sloppy and hard to follow.

  • How can I get the sample code for crawler plugins?

    Hi,
    One SES document mentioned that there are three sample crawler plugins, which reside in $ORACLE_HOME/search/sample/agent. However, I couldn't find them. Did I miss installing something? Can anyone share with me the sample code?
    Thanks.
    Jun Gao

    The original 10.1.6 sample plugins are no longer distributed in 10.1.8.1 as there were a few problems with them. I would suggest you take a look at
    Simple File Crawler
    http://www.oracle.com/technology/products/oses/pdf/Buidling_Custom_CrawlersJan12_07.doc
    Sourcecode here:
    http://www.oracle.com/technology/products/oses/files/simplefilecrawlerpluginmanager.java
    and here
    http://www.oracle.com/technology/products/oses/files/simplefilecrawlerplugin.java
    And the two crawlers under "Sample Code" on the OTN page:
    http://www.oracle.com/technology/products/oses/index.html

  • Please can you send me a fix for the error message that starts up when I open Firefox. It says " well this is embarrassing," and asks if I want to close the tab

    Please can someone tell how to fix the problem I have with firefox on a mac OS. When firefox opens it comes up with an error message " well this is embarrassing...." and continues to ask if I want to close or restore the tabs that are open.
    Does anyone have a simple fix?
    Thank you
    Beamer

    Hello Beamer, you must update to latest (21.0) version, the bug it is fixed in firefox 21!
    https://bugzilla.mozilla.org/show_bug.cgi?id=845681
    [https://support.mozilla.org/en-US/kb/update-firefox-latest-version#os=mac&browser=fx21 Update Firefox to the latest version]
    thank you

  • How Can I use Mysql's  PROCEDURE by Java Can you give me sample???

    �������^���������������H�iBEGIN�`END�u���b�N�j�@��TOP
    ORACLE�@MSSQL�@SSA�@MySQL�@
    ���{�I���������������������������B
    MySQL�������A ORACLE��MSSSQL��������������BEGIN�`END�u���b�N�����s�������������������������B
    ���������s�������������K���X�g�A�h�v���O�����������R���p�C�������K�v�����������B
    �i�����F�������������������A���w�E�������������K�r�����������j
    --drop PROCEDURE sp_hoge;
    --�f���~�^�����X��������
    delimiter //
    CREATE PROCEDURE sp_hoge()
    DETERMINISTIC
    BEGIN
    /* �������� */
    DECLARE mystr VARCHAR(20);
    DECLARE mycnt INTEGER(2);
    /* �l������ */
    SET mycnt = 0;
    SET mystr = '����';
    /* IF�� */
    IF mycnt = 0 THEN
    SET mystr = '�����Q';
    select mystr;
    ELSE
    select '�����R';
    END IF;
    /* CASE�� */
    CASE extract(month from now())
    WHEN 1 THEN SET mystr = '1��';
    WHEN 2 THEN SET mystr = '2��';
    WHEN 3 THEN SET mystr = '3��';
    WHEN 4 THEN SET mystr = '4��';
    ELSE SET mystr = '1�`4�����O';
    END CASE;
    select mystr;
    /* WHILE-LOOP */
    WHILE mycnt <= 5 DO
    SET mycnt = mycnt + 1;
    select mycnt;
    END WHILE;
    /* BEGIN-END�u���b�N������SELECT�������s */
    /* PROCEDURE�������\�iFUNCTION���������������j */
    select * from help_topic;
    END//
    delimiter ;
    --�X�g�A�h�v���V�[�W�����s
    call sp_hoge();
    �X�g�A�h�v���V�[�W�����T���v���i�J�[�\�����g�p������LOOP�����j�@��TOP
    ORACLE�@MSSQL�@SSA�@MySQL�@
    �J�[�\�����g�p����LOOP�������T���v�������B
    �����p�����[�^���w�����������������Y�������������������A���E���w�X�^�b�t�x�������������A�����������w�c���X�^�b�t�F�x���\���������B
    --drop PROCEDURE sp_hoge;
    --�f���~�^�����X��������
    delimiter //
    CREATE PROCEDURE sp_hoge(inum INTEGER(3))
    DETERMINISTIC
    BEGIN
    /* �������� */
    /* �J�[�\���g�p�����f�[�^�L�����f���g�p */
    DECLARE done INT DEFAULT 0;
    /* �������O������ */
    DECLARE v_mystr VARCHAR(20);
    /* �J�[�\���g�p�� */
    DECLARE v_empnm VARCHAR(40);
    DECLARE v_job VARCHAR(20);
    /* �J�[�\������ �� �����������������`���� */
    DECLARE cur1 CURSOR FOR
    select empnm,job from kemp where deptno = inum;
    /* �f�[�^��������LOOP�E�o�p���������� */
    DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
    /* �J�[�\���I�[�v�� */
    OPEN cur1;
    /* LOOP */
    LOOPPROC:REPEAT
    FETCH cur1 INTO v_empnm,v_job;
    IF NOT done THEN
    IF v_job = '�X�^�b�t' THEN
    SET v_mystr = '�c���X�^�b�t�F';
    ELSE
    SET v_mystr = '';
    END IF;
    select CONCAT(v_mystr,v_empnm);
    /* ������������LOOP���E�o����������LEAVE�� */
    /* LEAVE LOOPPROC; */
    END IF;
    UNTIL done END REPEAT;
    /* �J�[�\���N���[�Y */
    CLOSE cur1;
    END//
    --�f���~�^���Z�~�R�����i�f�t�H���g�j������������
    delimiter ;
    --�X�g�A�h�v���V�[�W�����s
    call sp_hoge(1);
    12.2. Control Flow Functions
    CASE value WHEN [compare_value] THEN result [WHEN [compare_value] THEN result ...] [ELSE result] END
    CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END
    The first version returns the result where value=compare_value. The second version returns the result for the first condition that is true. If there was no matching result value, the result after ELSE is returned, or NULL if there is no ELSE part.
    mysql> SELECT CASE 1 WHEN 1 THEN 'one'
    -> WHEN 2 THEN 'two' ELSE 'more' END;
    -> 'one'
    mysql> SELECT CASE WHEN 1>0 THEN 'true' ELSE 'false' END;
    -> 'true'
    mysql> SELECT CASE BINARY 'B'
    -> WHEN 'a' THEN 1 WHEN 'b' THEN 2 END;
    -> NULL
    The default return type of a CASE expression is the compatible aggregated type of all return values, but also depends on the context in which it is used. If used in a string context, the result is returned as a string. If used in a numeric context, then the result is returned as a decimal, real, or integer value.
    Note: The syntax of the CASE expression shown here differs slightly from that of the SQL CASE statement described in Section 17.2.10.2, �gCASE Statement�h, for use inside stored routines. The CASE statement cannot have an ELSE NULL clause, and it is terminated with END CASE instead of END.
    IF(expr1,expr2,expr3)
    If expr1 is TRUE (expr1 <> 0 and expr1 <> NULL) then IF() returns expr2; otherwise it returns expr3. IF() returns a numeric or string value, depending on the context in which it is used.
    mysql> SELECT IF(1>2,2,3);
    -> 3
    mysql> SELECT IF(1<2,'yes','no');
    -> 'yes'
    mysql> SELECT IF(STRCMP('test','test1'),'no','yes');
    -> 'no'
    If only one of expr2 or expr3 is explicitly NULL, the result type of the IF() function is the type of the non-NULL expression.
    expr1 is evaluated as an integer value, which means that if you are testing floating-point or string values, you should do so using a comparison operation.
    mysql> SELECT IF(0.1,1,0);
    -> 0
    mysql> SELECT IF(0.1<>0,1,0);
    -> 1
    In the first case shown, IF(0.1) returns 0 because 0.1 is converted to an integer value, resulting in a test of IF(0). This may not be what you expect. In the second case, the comparison tests the original floating-point value to see whether it is non-zero. The result of the comparison is used as an integer.
    The default return type of IF() (which may matter when it is stored into a temporary table) is calculated as follows:
    Expression Return Value
    expr2 or expr3 returns a string string
    expr2 or expr3 returns a floating-point value floating-point
    expr2 or expr3 returns an integer integer
    If expr2 and expr3 are both strings, the result is case sensitive if either string is case sensitive.
    Note: There is also an IF statement, which differs from the IF() function described here. See Section 17.2.10.1, �gIF Statement�h.
    IFNULL(expr1,expr2)
    If expr1 is not NULL, IFNULL() returns expr1; otherwise it returns expr2. IFNULL() returns a numeric or string value, depending on the context in which it is used.
    mysql> SELECT IFNULL(1,0);
    -> 1
    mysql> SELECT IFNULL(NULL,10);
    -> 10
    mysql> SELECT IFNULL(1/0,10);
    -> 10
    mysql> SELECT IFNULL(1/0,'yes');
    -> 'yes'
    The default result value of IFNULL(expr1,expr2) is the more �ggeneral�h of the two expressions, in the order STRING, REAL, or INTEGER. Consider the case of a table based on expressions or where MySQL must internally store a value returned by IFNULL() in a temporary table:
    mysql> CREATE TABLE tmp SELECT IFNULL(1,'test') AS test;
    mysql> DESCRIBE tmp;
    -------------------------------------------+
    | Field | Type | Null | Key | Default | Extra |
    -------------------------------------------+
    | test | char(4) | | | | |
    -------------------------------------------+
    In this example, the type of the test column is CHAR(4).
    NULLIF(expr1,expr2)
    Returns NULL if expr1 = expr2 is true, otherwise returns expr1. This is the same as CASE WHEN expr1 = expr2 THEN NULL ELSE expr1 END.
    mysql> SELECT NULLIF(1,1);
    -> NULL
    mysql> SELECT NULLIF(1,2);
    -> 1
    Note that MySQL evaluates expr1 twice if the arguments are not equal.
    Previous / Next / Up / Table of Contents
    User Comments
    Posted by I W on July 12 2005 5:52pm [Delete] [Edit]
    Don't use IFNULL for comparisons (especially not for Joins)
    (example:
    select aa from a left join b ON IFNULL(a.col,1)=IFNULL(b.col,1)
    It's terrible slow (ran for days on two tables with approx 250k rows).
    Use <=> (NULL-safe comparison) instead. It did the same job in less than 15 minutes!!
    Posted by [name withheld] on November 10 2005 12:12am [Delete] [Edit]
    IFNULL is like oracle's NVL function (these should help people searching for NVL() ..)
    Posted by Philip Mak on May 26 2006 7:14am [Delete] [Edit]
    When using CASE, remember that NULL != NULL, so if you write "WHEN NULL", it will never match. (I guess you have to use IFNULL() instead...)
    Posted by Marc Grue on June 24 2006 2:03pm [Delete] [Edit]
    You can ORDER BY a dynamic column_name parameter using a CASE expression in the ORDER BY clause of the SELECT statement:
    CREATE PROCEDURE `orderby`(IN _orderby VARCHAR(50))
    BEGIN
    SELECT id, first_name, last_name, birthday
    FROM table
    ORDER BY
    -- numeric columns
    CASE _orderby WHEN 'id' THEN id END ASC,
    CASE orderby WHEN 'desc id' THEN id END DESC,
    -- string columns
    CASE orderby WHEN 'firstname' THEN first_name WHEN 'last_name' THEN last_name END ASC,
    CASE orderby WHEN 'descfirst_name' THEN first_name WHEN 'desc_last_name' THEN last_name END DESC,
    -- datetime columns
    CASE _orderby WHEN 'birthday' THEN birthday END ASC,
    CASE orderby WHEN 'desc birthday' THEN birthday END DESC;
    END
    Since the CASE expression returns the "compatible aggregated type of all return values", you need to isolate each column type in a separate CASE expression to get the desired result.
    If you mixed the columns like
    CASE _orderby
    WHEN 'id' THEN id
    WHEN 'first_name' THEN first_name
    ...etc...
    END ASC
    .. both the id and first_name would be returned as a string value, and ids would be sorted as a string to '1,12,2,24,5' and not as integers to '1,2,5,12,24'.
    Note that you don't need a "ELSE null" in the CASE expressions, since the CASE expression automatically returns null if there's no match. In that case, you get a "null ASC" in your ORDER BY clause which doesn't affect the sort order. If for instance orderby is 'descfirst_name', the ORDER BY clause evaluates to:
    ORDER BY null ASC, null DESC, null ASC, first_name DESC, null ASC, null DESC
    Effectively the same as "ORDER BY first_name DESC". You could even add a new set of CASE expressions for a second order column (or more..) if you like.
    Add your own comment.

    What is that post supposed to be?

  • Can you give me some code do this!

    how to make appletviewer OutputApplet.html to display applet window in center !!

    Go work with the alignment Attribute of the Applet Property that goes thus: <html><applet code="OutputApplet.calss" height="..." width="..." align="Center"></applet></html>

  • Sample Code for CRM enhancement in BADI

    hi,
      can anybody please give me sample code for BADI for CRM enhancement.
    i have added couple of z field in a extract structure. now i have to write code in BADI to populate those fields.
    please do not send code for user exit.
    Regards
    Subrata

    Hi Aviral,
    Please consider below thread :
    http://scn.sap.com/thread/2069370
    Best regards - Christophe

  • Can you give some of your products samples? it's for my project

    Hi this is a student name Gama. I was wondering if you guys can give my some of your product sample for my  Econ project because I'm doing a research of you company. This project is to choose your favorite company so I choose you guys because I love your company and its that i get to download apps like games and other stuff also music and movies which is the best part of this company. So please can you give a report or at least some of your product samples

    Hello,
    Just other users here like yourself, so Apple will not likely respond here, you need to contact them by other means.

  • How can we purchase Cold Fusion 10. Please can you help.

    Please can you give detail how we gonna purchase Cold Fusion 10.

    Kindly email at [email protected] for this concern, you would get required information there too.

  • I forgot my security question and the answer . please can you provided

    i forgot my security question and the answer . please can you provided

    The Three Best Alternatives for Security Questions and Rescue Mail
        1. Use Apple's Express Lane.
              Go to https://expresslane.apple.com ; click 'See all products and services' at the
              bottom of the page. In the next page click 'More Products and Services, then
              'Apple ID'. In the next page select 'Other Apple ID Topics' then 'Forgotten Apple
              ID security questions' and click 'Continue'. Please be patient waiting for the return
              phone call. It will come in time depending on how heavily the servers are being hit.
         2.  Call Apple Support in your country: Customer Service: Contact Apple support.
         3.  Rescue email address and how to reset Apple ID security questions.
    A substitute for using the security questions is to use 2-step verification:
    Two-step verification FAQ Get answers to frequently asked questions about two-step verification for Apple ID.

Maybe you are looking for