BMS-HOSxP Community

HOSxP => การเขียน SQL Script => ข้อความที่เริ่มโดย: civiccoupe ที่ กุมภาพันธ์ 15, 2008, 14:54:46 PM

หัวข้อ: เอาค่าว่างมาบวกกับค่า ตัวเลข ปรากฏว่าบวกแล้วมันได้ค่าว่างออกมา มีวิธีแก้หรือไม่
เริ่มหัวข้อโดย: civiccoupe ที่ กุมภาพันธ์ 15, 2008, 14:54:46 PM
เอาค่าว่างมาบวกกับค่า ตัวเลข ปรากฏว่าบวกแล้วมันได้ค่าว่างออกมา มีวิธีแก้หรือไม่ครับ
ผมต้องาการให้มันบวกกันได้
-ผม query ของ DB2 นะครับ
หัวข้อ: Re: เอาค่าว่างมาบวกกับค่า ตัวเลข ปรากฏว่าบวกแล้วมันได้ค่าว่างออกมา มีวิธีแก้หรือไม่
เริ่มหัวข้อโดย: doramon ที่ กุมภาพันธ์ 15, 2008, 15:08:23 PM
เอาค่าว่างมาบวกกับค่า ตัวเลข ปรากฏว่าบวกแล้วมันได้ค่าว่างออกมา มีวิธีแก้หรือไม่ครับ
ผมต้องาการให้มันบวกกันได้
-ผม query ของ DB2 นะครับ

ช่วยแนะนำตัวเองด้วยครับ

ไม่เข้าใจคำถาม
แต่คิดว่าไม่ได้เกียวกับ  โปรแกรม hosxp
 ???
หัวข้อ: Re: เอาค่าว่างมาบวกกับค่า ตัวเลข ปรากฏว่าบวกแล้วมันได้ค่าว่างออกมา มีวิธีแก้หรือไม่
เริ่มหัวข้อโดย: manoi ที่ กุมภาพันธ์ 15, 2008, 21:47:56 PM
ถูกต้องแล้วครับ NULL + 1 = NULL
หัวข้อ: Re: เอาค่าว่างมาบวกกับค่า ตัวเลข ปรากฏว่าบวกแล้วมันได้ค่าว่างออกมา มีวิธีแก้หรือไม่
เริ่มหัวข้อโดย: ทานน้ำ ที่ พฤษภาคม 27, 2008, 15:11:44 PM
แล้วจะทำยังไงคะที่จะเอาค่า NULL+1 ให้ได้ =1
พอจะมีทางเป็นไปได้มั้ยคะ
ถามแบบไม่รู้หลักคำสั่ง sql เลยนะคะ
หัวข้อ: Re: เอาค่าว่างมาบวกกับค่า ตัวเลข ปรากฏว่าบวกแล้วมันได้ค่าว่างออกมา มีวิธีแก้หรือไม่
เริ่มหัวข้อโดย: woravet ที่ พฤษภาคม 27, 2008, 15:26:44 PM
ลองใช้ ifnull() ดู
เช่น
select ifnull(null,0)+1 as 'sum'
หัวข้อ: Re: เอาค่าว่างมาบวกกับค่า ตัวเลข ปรากฏว่าบวกแล้วมันได้ค่าว่างออกมา มีวิธีแก้หรือไม่
เริ่มหัวข้อโดย: ทานน้ำ ที่ พฤษภาคม 27, 2008, 15:36:23 PM
ขอบคุณมากมายนะคะ จะลองดูค่ะ
หัวข้อ: Re: เอาค่าว่างมาบวกกับค่า ตัวเลข ปรากฏว่าบวกแล้วมันได้ค่าว่างออกมา มีวิธีแก้หรือไม่
เริ่มหัวข้อโดย: เด็กดำรำพัน ? ที่ มกราคม 25, 2012, 16:42:04 PM
ลองใช้ ifnull() ดู
เช่น
select ifnull(null,0)+1 as 'sum'


ลองแล้วไม่ได้ผลครับ ยังออกมาเป็น Null เหมือนเดิม เจอปัญหานี้เหมือนกันบ่อยครั้งเลยที่จนปัญญา
ของผมใช้งานเกี่ยวกับรายงานยกตัวอย่างนะครับ การดึงอาหารที่สั่งจาก ipd ของโรงพยาบาลผม คนนึงสั่ง1อย่างมี 2อย่างมี ผมเลย ใช้ select ซ้อน select โดยตัวแรก limit 0,1 ตัวที่ 2  limit 1,1 แล้วเอาทั้งคู่มา concat(ตัวแรก,"/",ตัวที่ 2) ผลคือคนที่มีอาหาร 2 รายการปกติดี แต่คนที่มีรายการเดียวกลายเป็น Null ไปซะ เพราะ Null จากรายการที่ 2 concat ไม่ได้ จึงอยากทราบวิธีเหมือนกันครับว่า ถ้าcolumที่มีให้ค่า null ให้แสดงค่า "xxx" ต้องทำไงครับ ช่วยทำบุญแผ่ความรู้แด่ผู่โง่เขลารายนี้ด้วยเทิญ ^_^ 
หัวข้อ: Re: เอาค่าว่างมาบวกกับค่า ตัวเลข ปรากฏว่าบวกแล้วมันได้ค่าว่างออกมา มีวิธีแก้หรือไม่
เริ่มหัวข้อโดย: chitvichai ที่ มกราคม 25, 2012, 18:10:39 PM
ลองใช้ ifnull() ดู
เช่น
select ifnull(null,0)+1 as 'sum'


ลองแล้วไม่ได้ผลครับ ยังออกมาเป็น Null เหมือนเดิม เจอปัญหานี้เหมือนกันบ่อยครั้งเลยที่จนปัญญา
ของผมใช้งานเกี่ยวกับรายงานยกตัวอย่างนะครับ การดึงอาหารที่สั่งจาก ipd ของโรงพยาบาลผม คนนึงสั่ง1อย่างมี 2อย่างมี ผมเลย ใช้ select ซ้อน select โดยตัวแรก limit 0,1 ตัวที่ 2  limit 1,1 แล้วเอาทั้งคู่มา concat(ตัวแรก,"/",ตัวที่ 2) ผลคือคนที่มีอาหาร 2 รายการปกติดี แต่คนที่มีรายการเดียวกลายเป็น Null ไปซะ เพราะ Null จากรายการที่ 2 concat ไม่ได้ จึงอยากทราบวิธีเหมือนกันครับว่า ถ้าcolumที่มีให้ค่า null ให้แสดงค่า "xxx" ต้องทำไงครับ ช่วยทำบุญแผ่ความรู้แด่ผู่โง่เขลารายนี้ด้วยเทิญ ^_^ 

โค๊ด: [Select]
ใช้ได้ใน mysql นะครับ
 concat(if(A is null,"",A), if(B is null,"",B) )


หัวข้อ: Re: เอาค่าว่างมาบวกกับค่า ตัวเลข ปรากฏว่าบวกแล้วมันได้ค่าว่างออกมา มีวิธีแก้หรือไม่
เริ่มหัวข้อโดย: เด็กดำรำพัน ? ที่ มกราคม 25, 2012, 21:45:14 PM
ยังไม่ได้ครับ . . .  ???   :'( คือผลลัพธ์ null ที่ผมเจอปัญหามานี้มันมาจาก ยังไงดี คือ เช่น
 ผลลัพธ์จากชุดคำสั่งได้มา 2 แถว
แถวที่ 1 คือ อาหารอ่อน
แถวที่ 2 คือ ไข่ขาวล้วน
เรา limit 3,1 คำตอบจะไม่แจ้งว่า ERROR แต่จะให้ผลเป็น Null คือไม่มีแถวนั้น(แถวที่ 3)น่ะครับ
ซึ่งมันต่างจาก Null ที่มาจากฟิวล์หรือช่องที่ยังไม่มีการบันทึกค่า
ถ้า Null จากการไม่บันทึกค่าใช้ IF(colum IS NULL,"ใช่จ้ะค่าว่าง","ไม่ว่างนะคะ") ลองแล้วใช้ไดครับ
แต่ถ้ามาจาก null ที่มาจากไม่มีแถวหรือคำตอบจากชุดคำสั่งเนี่ย มันทำไงให้เป็นค่าที่ต้องการได้นั่นแหล่ะครับที่ผมเจออยู่