Friday, November 30, 2012

การประยุกต์ใช้ คำสั่ง REPLACE แทนที่ตัวอักษรด้วยค่าที่ต้องการ


 ท่านเคยหรือเปล่า ที่ลองใช้ Function GetSQLSubQueryData(sql); แล้ว แต่พบว่าแสดงผลออกมาเป็น 'a','b' แต่อยากให้เวลาที่แสดงผล สามารถที่จะตัดเครื่องหมาย   a,b,c  ออกให้เหลือแต่เครื่องหมาย , คั่นชุดข้อมูลที่ได้แต่ละค่าครับ เนื่องจากกินพื้นที่พอสมควรทำให้ ถ้าหากต้องการแบบนั้น มาดูวิธีกันเลย ....


ยกตัวอย่าง ที่ 1

st := ReplaceSTR(GetSQLSubQueryData('select name from pttype'),'''','');
st := ReplaceSTR(st,'"','');


ตัวอย่างที่ 2 เนื่องจาก  ตัว ' (Qoute) เป็นคำสงวน หรือสัญลักณ์  เราอาจใช้การแปลงเป็น Ascii Code ซึ่ง  สัญลักษณ์ ' (Qoute)  แทนด้วย ตัวเลข 39 ดัง Script

จาก Script


Value := GetSQLSubQueryData('Select icd10 from iptdiag '+
  ' where an ="'+dbpipeline['an']+'" and diagtype ="2" ');

หากไม่ใช้ Function จะให้ผล    'A09','E119','I10','M420'  

แต่ถ้า ใช้ Script แบบนี้


Value := ReplaceStr(GetSQLSubQueryData('Select icd10 from iptdiag '+
  ' where an ="'+dbpipeline['an']+'" and diagtype ="2" '),chr(39),'');

 จะให้ผลแบบนี้    A09,E119,I10,M420   จะเห็นว่า ไม่มี สัญลักษณ์ ' (Qoute) แล้ว


หรือ เราสามารถประยุกต์ใช้ คำสั่ง REPLACE แทนที่ตัวอักษรด้วยค่าที่ต้องการแทนที่ แบบนี้ก็ได้
เช่น
         SELECT REPLACE("123456789", "67", "A") as Data

ค่าที่ได้คือ 12345A89 ครับ เพราะผมแทนที่ 67 ด้วย A ไงครับ

ครับ น่าจะพอได้ Concept นะครับ .....


No comments: