Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > .NET Framework > Forum > สอบถามเรื่องการส่ง Parameter ไปให้ Query ที่ใช้เงื่อนไข in ในการ where (Query เขียนใน Stored Procedure)



 

สอบถามเรื่องการส่ง Parameter ไปให้ Query ที่ใช้เงื่อนไข in ในการ where (Query เขียนใน Stored Procedure)

 



Topic : 109954



โพสกระทู้ ( 424 )
บทความ ( 0 )



สถานะออฟไลน์




เขียนคิวรีโดยใช้ Stored Procedure ในการหาผลลัพธ์ ติดตรงการส่งค่า Parameter ไปประมวลผล ตัวอย่างค่าที่ส่งไปมี 2 แบบ
แบบที่ 1 'A','B','C'
แบบที่ 2 A','B','C

Code (SQL)
@X         VARCHAR(1200)

SELECT * FROM A WHERE (X IN (@X))


ไม่ทราบว่าต้องส่งค่าไปที่ @X ในรูปไหนหรอครับถึงจะได้ผลลัพธ์ หรือ มีวิธีการเขียนคิวรีรูปแบบอื่นก็สามารถแนะนำได้นะครับ



Tag : .NET, Ms SQL Server 2008, Win (Windows App), C#, VS 2008 (.NET 3.x), Windows







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2014-07-15 20:32:28 By : Agility View : 2005 Reply : 6
 

 

No. 1



โพสกระทู้ ( 611 )
บทความ ( 0 )



สถานะออฟไลน์


ยกตัวอย่างจริงให้ดูเลยครับ หนึ่งในเก้าวิธีการผ่านค่าพารามิเตอร์ให้กับ SP
ตัวอย่างการ CALL

Code (SQL)
EXECUTE [dbo].[msrFormPerm_usp02] @RoleIDc = N'997, 998', @UserID = 0


Store Procedure msrFormPerm_usp02

Code (SQL)
USE [yourDB]
GO
/****** Object:  StoredProcedure [dbo].[msrFormPerm_usp02]    Script Date: 07/16/2014 07:20:21 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
 
ALTER PROCEDURE [dbo].[msrFormPerm_usp02] 
(
 @RoleIDc AS nvarchar(MAX) = '',
 @UserID AS int = 0 
) 
 
AS
 
BEGIN
 
 SET NOCOUNT ON ;
 
 DECLARE @strSQL AS nvarchar(MAX) ='' ;
  
   SET @strSQL = 'SELECT c.ACL,
                   0 As Flag,
                   0 As Priority 
                   FROM msrFormPerm c WHERE (c.RoleID = 0 OR c.RoleID IS NULL) AND c.UserID ='
                   + ' '
                   + CAST(@UserID AS varchar)
                   + ' '
                   + 'UNION ALL'
                   + ' '
                   + 'SELECT a.ACL,
                   1 As Flag,
                   b.Priority 
                   FROM msrFormPerm a INNER JOIN msrRoles b ON a.RoleID = b.RoleID 
                   WHERE a.RoleID IN('
                   + ' ' 
                   + @RoleIDc
                   + ') ' 
                   + 'AND (a.UserID = 0 OR a.UserID IS NULL)' ;                      
 
    EXEC sp_executesql @strSQL ;
 
END


ปล. 1. EXECUTE หรือเขียนคำย่อ EXEC
-----2. อีกวิธีหนึ่งที่ผมเลือกใช้ผ่านค่า โดยใช้เทคนิค NVARCHAR
-----3. งานจริงไม่มีอะไรง่ายง่ายครับ


แก้ไขเผื่อคุณมองข้างหลังภาพไม่ออกครับ (2014-07-16 08:37 AM)
Table Design By : หน้าฮี

usp_x_param








ประวัติการแก้ไข
2014-07-16 07:44:12
2014-07-16 08:39:17
2014-07-16 08:41:10
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-16 07:33:22 By : หน้าฮี
 


 

No. 2



โพสกระทู้ ( 611 )
บทความ ( 0 )



สถานะออฟไลน์


การเขียน Store Procedure ให้คิดเสียว่ามันคือการ "ต้มมาม่า/ยำยำ"
หลักการมันมีแค่นี้ครับ
(อาจจะมีบางคนคิดว่าตัวเองใช้ Store Procedure แล้วกลายเป็น โปรแกรมเมอร์เทวดาไปเลยก็มีครับ)


จาก #NO 1 ลองไล่ดูครับ ตัวอย่าง/งานจริง ที่ผมมีอยู่อันนี้ง่ายที่สุดแล้วครับ
มันตอบโจทย์ของคุณได้ >>>> 2 ข้อครับ


ปล. บางครั้งบางคราว ผมเหงา บางครั้งบางคราว ผมไม่มีสมาธิ ตอนกลางคืน ผมมักจะไปนั่งคนเดียวในป่าช้า/เมนเผาศพ
----- ลึกลึกก็กลัวผีเหมือนกันแต่ความเหงา/ต้องการสมาธิ มันทำให้หายกลัวและกลายเป็นความเคยชินครับ (ไม่กลัว)


อันนี้ผมพูดจริงนะครับ วันออกพรรษาปีนี้ผมตั้งใจว่าจะให้ภรรยาและครอบครัวเที่ยวให้หนำใจไปเลยครับ
จ.แม่ฮ่องสอน จ.เชียงราย จ.เชียงใหม่ หล่อนอยากจะไปไหนก็ไป (ของชอบของหล่อนเลย ผู้ว่าการท่องเที่ยว)
แต่ผมจะไปนอนค้างที่ป่าช้ากลางป่า ถ้ามาจาก จ.ลำปางและขึ้นไปทาง จ.เชียงราย จะอยู่ขวามือ
อยู่ช่วงรอยต่อระหว่าง ถ้ำเจ้าพ่อประตูผาและจังหวัดพะเยา (เลยถ้ำประตูผามาประมาณ 50 กิโลเมตร ถ้าจำไม่ผิด)
ตั้งใจว่าจะอยู่สักอาทิตย์หนึ่งครับ (ผมเคยผ่านและคิดว่ามันวังเวงพอใช้ได้ครับ)


ประวัติการแก้ไข
2014-07-16 08:00:09
2014-07-16 08:08:48
2014-07-16 08:15:54
2014-07-16 08:27:03
2014-07-16 08:27:42
2014-07-16 08:28:22
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-16 07:58:13 By : หน้าฮี
 

 

No. 3



โพสกระทู้ ( 174 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 2 เขียนโดย : หน้าฮี เมื่อวันที่ 2014-07-16 07:58:13
รายละเอียดของการตอบ ::
พี่แม่งตัวจริงวะ 555

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-16 09:11:25 By : nongpaoza
 


 

No. 4



โพสกระทู้ ( 611 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 3 เขียนโดย : nongpaoza เมื่อวันที่ 2014-07-16 09:11:25
รายละเอียดของการตอบ ::
น้องสาวของคุณก็กระซิบข้างหูของผมแบบนี้แหละครับ (เมื่อคืนนี้หลังเวลาจุ๊บจุ๊บจุ๊บ)
สุขจริงยาวจัง (หมายถึงว่า ผมพูดได้ร้อยแปดพันเก้ากับภรรยาของผมทุกทุกคนครับ)


เหรียญมีสองด้านเสมอครับ หงายหัวหรือหงายก้อย มูลค่าของมัน ก็ไม่เปลี่ยนแปลงนะครับ

แต่คนเราทุกทุกคน "นอนคว่ำหน้า/นอนหงาย" มันไม่เหมือนกันนะครับ อย่างน้อยฯก็ความรู้สึกอะไรบางอย่าง
อทิเช่น "นอนคว่ำหน้า" มันทำให้เราหลงทางได้นะครับ(โดยไม่ได้ตั้งใจ) +55555


ประวัติการแก้ไข
2014-07-16 10:04:11
2014-07-16 10:06:06
2014-07-16 10:09:55
2014-07-16 10:10:51
2014-07-16 10:11:42
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-16 10:02:39 By : หน้าฮี
 


 

No. 5



โพสกระทู้ ( 611 )
บทความ ( 0 )



สถานะออฟไลน์


อธิบายเพื่อให้เข้าใจครับ กลัวว่าเข้าใจไม่ตรงกัน "เมนเผาศพ"
จริงจริงแล้วเพี้ยนมาจากคำว่า "เมรุ/เมธุ/เมธ" อทิเช่น

เขาพระสุเมรุ
เขาพระสุเมธ


เป็นต้นครับ แต่เหตุผลที่ผมเลือกใช้คำว่า "เมน" เพื่อความเข้าใจที่ง่ายกว่า
ผู้หญิงมีประจำเดือนเขาก็ใช้คำนี้เหมือนกันนะครับ "มีเมน/มีเมนส์"
และอื่นฯ... ความหมายของมันขึ้นอยู่กับประโยคนั้นฯครับ

อทิเช่น หมายถึง สูง, รอบเวลา, บางครั้งบางครา, ไหลไม่หยุด, etc..

ปล. จริงฯแล้วความหมายมันมีมากกว่านี้ครับ ลองถามครู "ลิลลี่"
(ผมและครูลิลลี่ตอนนี้แยกกันอยู่ แต่เราก็ยังเป็นเพื่อนและเข้าใจกันดี...)


ประวัติการแก้ไข
2014-07-16 10:43:52
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-16 10:34:02 By : หน้าฮี
 


 

No. 6



โพสกระทู้ ( 611 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 3 เขียนโดย : nongpaoza เมื่อวันที่ 2014-07-16 09:11:25
รายละเอียดของการตอบ ::
น้องสาวของคุณเขาห่วงพี่ชายของเขา (น้องสาวของคุณคือภรรยาที่ผมรัก)


คุณเข้าใจหรือยังว่า
ทำไมผมถึงไม่ใช้ Store Procedure (ถ้าผมไม่จำเป็นจริงฯ)
ไม่ใช่ว่าผมเขียนไม่เป็นนะ ต้องพูดว่าผมไม่เป็นรองใครต่างหากล่ะครับ



เข้าใจหรือยัง ผมให้คุณเดานะครับ (พี่เมียที่มีน้องสาวแสนสวยตั้ง 2 คนแน่ะ) +55555
ค่อยค่อยคิดไปก็ได้ครับ


ประวัติการแก้ไข
2014-07-16 17:18:48
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-16 17:17:12 By : หน้าฮี
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : สอบถามเรื่องการส่ง Parameter ไปให้ Query ที่ใช้เงื่อนไข in ในการ where (Query เขียนใน Stored Procedure)
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 00
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่