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,037

HOME > .NET Framework > Forum > sql substr ช่วยทีนะคะ อยากทราบว่า ถ้าจะเขียน sql substring ตัดข้ออความ ที่มีตำแหน่งไม่แน่นอน



 

sql substr ช่วยทีนะคะ อยากทราบว่า ถ้าจะเขียน sql substring ตัดข้ออความ ที่มีตำแหน่งไม่แน่นอน

 



Topic : 044038

Guest




อยากทราบว่า ถ้าจะเขียน sql substring ตัดข้ออความ ที่มีตำแหน่งไม่แน่นอน แต่จะตัดเอาเฉพาะข้อมูลที่อยู่หน้า เครื่องหมาย / จะเขียนยังไงดีคะ



Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-06-15 11:36:11 By : จุ๊บุ View : 5747 Reply : 20
 

 

No. 1



โพสกระทู้ ( 1,603 )
บทความ ( 1 )



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


cute-header-04x
Code (C#)
--FOR MSSQL

SELECT
    CASE
       WHEN CHARINDEX('/' ,[ANY_SUPPORT_CHARACTOR_FIELD]) > 1 THEN 
          SUBSTRING( [ANY_SUPPORT_CHARACTOR_FIELD],1
             ,CHARINDEX('/' ,[ANY_SUPPORT_CHARACTOR_FIELD])-1)
       ELSE NULL 
    END AS STRING_BEFORE_SLASH
FROM [ANY_TABLE_NAME]
WHERE ......







Date : 2010-06-15 12:41:42 By : blurEyes
 


 

No. 2

Guest


มันไม่ได้ตามที่ต้องการอ่ะคะ แล้วหนูก็ไม่เข้าsqlที่ให้มาด้วย ช่วยอธิบายหน่อยได้ไหมคะ
Date : 2010-06-15 13:05:59 By : จุ๊บุ
 

 

No. 3



โพสกระทู้ ( 1,603 )
บทความ ( 1 )



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


เคยใช้ SUBSTRING ของ .NET ปะคะ
หลักการแบบเดียวกันค่ะ เพียงแต่ string index ของ .net เริ่มที่ 0
ของ SQL จะเริ่มที่ 1 และในที่นี้หาตำแหน่งของ / ด้วย function CHARINDEX
จากนั้นก็อเอามาตัด


ANY_SUPPORT_CHARACTOR_FIELD แทนด้วยชื่อ field ของคุณ
ANY_TABLE_NAME แทนด้วยชื่อ TABLE ของคุณค่ะ


จบคำอธิบายค่ะ
Date : 2010-06-15 13:11:28 By : blurEyes
 


 

No. 4

Guest


แล้วถ้าเราจะ group ตามฟิวที่เราตัดอ่ะคะ จะ group by ยังไงเอ่ย
Date : 2010-06-15 13:29:35 By : จุ๊บุ
 


 

No. 5



โพสกระทู้ ( 1,603 )
บทความ ( 1 )



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


cute-header-04x
Code (C#)
--FOR MSSQL
SELECT *
FROM
(
   SELECT
      CASE
          WHEN CHARINDEX('/' ,[ANY_SUPPORT_CHARACTOR_FIELD]) > 1 THEN 
             SUBSTRING( [ANY_SUPPORT_CHARACTOR_FIELD],1
                ,CHARINDEX('/' ,[ANY_SUPPORT_CHARACTOR_FIELD])-1)
             ELSE NULL 
       END AS STRING_BEFORE_SLASH
   FROM [ANY_TABLE_NAME]
) AS PRIMARY_QUERY
GROUP BY STRING_BEFORE_SLASH

Date : 2010-06-15 13:45:12 By : blurEyes
 


 

No. 6

Guest


ถามอีกนิดนะคะ พอดีว่ามันต้อง selectวันที่ แล้วก็sumยอดเงิน ของฟิวที่ตัดมาได้ด้วยอ่ะคะ ลองเอาไปใส่เพิ่มในหลายๆที่ แล้วมันก็errorอ่ะคะ รบกวนหน่อยนะคะ
Date : 2010-06-15 14:05:10 By : จุ๊บุ
 


 

No. 7



โพสกระทู้ ( 1,603 )
บทความ ( 1 )



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


ช่วยกรุณา ลง table structure ที่เกี่ยวข้องให้ครบถ้วนด้วยค่ะ
อยากให้ทำให้ดูเลยหรือว่าจะให้แนะนำเพื่อไปปฏิบัติเองคะ
Date : 2010-06-15 14:12:00 By : blurEyes
 


 

No. 8

Guest


ทำให้ดูก็ได้คะ ถ้าไม่ลำบากจนเกินไป ไม่เคยใช้ charindex เลยคะ คือตอนแรก เขียนsql แบบนี้คะ
select substring(number,1,8) as number,date,sum(amount) as amount from chqout where number between '111' and '222' and chqnumber like '[0-9]%' group by substring(chqnumber,1,8),paymentdate
union
select number,date,amount from chqout where number between '111' and '222' and number like '[ก-ฮ]%' order by number

ทีนี้ฟิวด์ number อ่ะคะ มันมีจำนวนไม่เท่ากัน ก็เลยตัดไม่ถูก เลยจะเอาโค้ดที่คุณเขียนให้ดู ไปปรับใช้แทนที่ในส่วนของ substring(number,1,8) as number ทีนี้มันไม่ได้อ่ะคะ เลยไม่รู้จะแก้ยังไงดี
Date : 2010-06-15 14:22:28 By : จุ๊บุ
 


 

No. 9

Guest


อืม ก๊อปปมาผิดพลาดนิดนึงนะคะ ตรง chqnumber กับ number มันคือตัวเดียวกันคะ
Date : 2010-06-15 15:00:26 By : จุ๊บุ
 


 

No. 10



โพสกระทู้ ( 1,603 )
บทความ ( 1 )



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


Code (C#)
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date, ,>
-- Description:	<Description, ,>
-- =============================================
CREATE FUNCTION [dbo].[GETSTR_BEFORE_SOMTHNIG]
(
	@VarStrTofind AS NVARCHAR(MAX) ,@VarSource AS NVARCHAR(MAX)
)
RETURNS NVARCHAR(MAX)
AS
BEGIN
	-- Declare the return variable here
	DECLARE 
		@CUTTING_POSITION		AS INT ,
		@RET_STR				AS NVARCHAR(MAX);

	-- Add the T-SQL statements to compute the return value here
	SET @CUTTING_POSITION = CHARINDEX(@VarStrTofind ,@VarSource);
	IF @CUTTING_POSITION <= 1 
	BEGIN
	   SET @RET_STR = SUBSTRING(@VarSource ,1 ,@CUTTING_POSITION -1);
	END 
	ELSE
	BEGIN
		SET @RET_STR ='' ;
	END

	-- Return the result of the function
	RETURN @RET_STR ;

END

GO



เอาไปรันที่ Sql Server Management Studio
ซึ่งจะได้ scalar function ตัวใหม่ จากนั้นเอาไปใส่ใน query เดิมของคุณ
น่าจะง่ายกว่าค่ะ

Code (C#)
select GETSTR_BEFORE_SOMTHNIG('/' , number) as number
   ,date, sum(amount) as amount 
from chqout 
where (number between '111' and '222') 
   and (number like '[0-9]%') 
group by GETSTR_BEFORE_SOMTHNIG('/', number)
   ,paymentdate 

Date : 2010-06-15 15:20:35 By : blurEyes
 


 

No. 11

Guest


คือจริงๆแล้วอยากได้ sql สำหรับใช้ select ข้อมูล เพราะตอนนี้ไม่ได้เขียน.net หรอกคะ กำลังเขียนdelphi อยู่ แต่เพราะความเคยชินกับบอร์ด.net เลยมาตั้งถามในนี้ บวกกับไม่รู้จะไปถามในไหนดี ยังไงก็ขอบคุณมากนะคะ อุตส่าห์ตอบมาตั้งนาน
Date : 2010-06-15 15:28:39 By : จุ๊บุ
 


 

No. 12



โพสกระทู้ ( 1,603 )
บทความ ( 1 )



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


ที่ตอบไปคงช่วยได้มังคะ
Date : 2010-06-15 15:33:53 By : blurEyes
 


 

No. 13

Guest


ช่วยได้นะคะ แต่ตอนนี้ก็groupไม่ได้แหละคะ
ลองทำตาม comment ที่แล้วนะคะ เอาไปรันแล้ว มันก็ยังใช้ไม่ได้อ่ะคะ
Date : 2010-06-15 15:37:51 By : จุ๊บุ
 


 

No. 14



โพสกระทู้ ( 1,603 )
บทความ ( 1 )



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


ถ้าจะ GROUP ก้อซ้อน QUERY เข้าไป
ที่จะแนะก้อแนะไปหมดแล้วค่ะ
Date : 2010-06-15 15:51:23 By : blurEyes
 


 

No. 15

Guest


group ได้แลเวแหละคะ แต่กลับsumไม่ได้ซะงั้น มันเอาข้อมูลเรคคอร์ดแรกมาโชว์แทน
Date : 2010-06-15 17:41:21 By : จุ๊บุ
 


 

No. 16



โพสกระทู้ ( 1,603 )
บทความ ( 1 )



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


คือปกติการเขียน query ที่เริ่มๆจะซับซ้อนนี่ ต้องรู้ความหมายของโจทย์ด้วยค่ะ
เห็นมาสั้นๆแบบนี้ ด้วยขมองอันมึนตึ้บ บางทีก็จินตการรัยไม่ออกเหมือนกัน
จริงๆ น่าจะเอา query ที่ใช้อยู่แล้ว มาแปะ
แล้วอธิบายว่าเอาไปทำอะไร เพื่ออะไร คงไม่ถามตอบกันยาวขนาดนี้มังคะ
Date : 2010-06-15 17:52:31 By : blurEyes
 


 

No. 17



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

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


เป็นผมให้เขาไปอ่าน sql เพิ่มเติมตั้งนานแล้ว จะได้คุยกันรู้เรื่อง
Date : 2010-06-15 20:54:38 By : tungman
 


 

No. 18



โพสกระทู้ ( 1,603 )
บทความ ( 1 )



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


เธอคนนี้เข้าใจ SQL ดีค่ะพี่ตึ๋ง
แค่สับสนนิดหน่อย กับอยากได้ SECOND OPINION
และเธออยากแน่ใจว่าคนตอบมีความรุพอหรือเปล่าน่ะค่ะ
Date : 2010-06-15 21:02:23 By : blurEyes
 


 

No. 19

Guest


หนูก็รู้แค่พื้นฐานแหละคะ ส่วนsqlที่ซับซ้อน ก็เริ่มงงๆ เลยอยากได้ตัวอย่างในการเขียนก็เท่านั้น
ถ้าไม่พอใจอะไร ก็ขอโทษด้วยนะคะ
Date : 2010-06-16 09:43:07 By : จุ๊บุ
 


 

No. 20



โพสกระทู้ ( 1,603 )
บทความ ( 1 )



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


ไม่ได้พอใจอะไรค่ะ
แค่อดคิดไม่ได้ว่ามีความสามารถพอที่จะตอบได้หรือเปล่าค่ะ
Date : 2010-06-16 12:33:17 By : blurEyes
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : sql substr ช่วยทีนะคะ อยากทราบว่า ถ้าจะเขียน sql substring ตัดข้ออความ ที่มีตำแหน่งไม่แน่นอน
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 01
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 อัตราราคา คลิกที่นี่