SQL:Example Uses of the SUBSTRING String Function
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110 |
---Example Uses of the SUBSTRING String Function --取名字Usage #1 : Get the First Name and Last Name from a Full Name DECLARE
@FullName VARCHAR (50) --set @FullName= ‘Mark Zuckerberg‘ set
@FullName= ‘Geovin Du‘ SELECT
SUBSTRING (@FullName, 1, CHARINDEX( ‘ ‘ , @FullName) - 1) AS
[ First
Name ], SUBSTRING (@FullName, CHARINDEX( ‘ ‘ , @FullName) + 1, LEN(@FullName)) AS
[ Last
Name ] --取價格 Geovin Du declare
@s varchar (8000) set
@s= ‘Item1(7RJ5401130-893)Item2( -0)Item3( -0)Item4( -0)‘ SELECT
SUBSTRING (@s,CHARINDEX( ‘(‘ , @s)+1,(CHARINDEX( ‘-‘ , @s)-CHARINDEX( ‘(‘ , @s))-1) as
‘Item1 Name‘ SELECT
SUBSTRING (@s,CHARINDEX( ‘-‘ , @s)+1,(CHARINDEX( ‘)‘ , @s)-CHARINDEX( ‘-‘ , @s))-1) as
‘Item1 price‘ select
@s= SUBSTRING (@s,CHARINDEX( ‘)‘ , @s)+1,len(@s)-CHARINDEX( ‘)‘ , @s)+1) SELECT
SUBSTRING (@s,CHARINDEX( ‘(‘ , @s)+1,(CHARINDEX( ‘-‘ , @s)-CHARINDEX( ‘(‘ , @s))-1) as
‘Item2 Name‘ SELECT
SUBSTRING (@s,CHARINDEX( ‘-‘ , @s)+1,(CHARINDEX( ‘)‘ , @s)-CHARINDEX( ‘-‘ , @s))-1) as
‘Item2 price‘ select
@s= SUBSTRING (@s,CHARINDEX( ‘)‘ , @s)+1,len(@s)-CHARINDEX( ‘)‘ , @s)+1) SELECT
SUBSTRING (@s,CHARINDEX( ‘(‘ , @s)+1,(CHARINDEX( ‘-‘ , @s)-CHARINDEX( ‘(‘ , @s))-1) as
‘Item3 Name‘ SELECT
SUBSTRING (@s,CHARINDEX( ‘-‘ , @s)+1,(CHARINDEX( ‘)‘ , @s)-CHARINDEX( ‘-‘ , @s))-1) as
‘Item3 price‘ select
@s= SUBSTRING (@s,CHARINDEX( ‘)‘ , @s)+1,len(@s)-CHARINDEX( ‘)‘ , @s)+1) SELECT
SUBSTRING (@s,CHARINDEX( ‘(‘ , @s)+1,(CHARINDEX( ‘-‘ , @s)-CHARINDEX( ‘(‘ , @s))-1) as
‘Item4 Name‘ select
@s= SUBSTRING (@s,CHARINDEX( ‘-‘ , @s)+1,(CHARINDEX( ‘)‘ , @s)-CHARINDEX( ‘-‘ , @s))-1) select
@s as
‘Item4 price‘ --Item4(8BG4134215-2274) declare
@s varchar (8000) set
@s= ‘Item1(8BG4157567-1522)Item2(8BG4154194-1536)Item3(8BG4158060-2135)Item4(8BG4134215-2274)‘ declare
@ name
varchar (50),@value varchar (50) DECLARE
@Property TABLE
( [ Name ] VARCHAR (50), [Value] VARCHAR (50) ) while len(@s)>10 begin SELECT
@ name = SUBSTRING (@s,CHARINDEX( ‘(‘ , @s)+1,(CHARINDEX( ‘-‘ , @s)-CHARINDEX( ‘(‘ , @s))-1) SELECT
@value= SUBSTRING (@s,CHARINDEX( ‘-‘ , @s)+1,(CHARINDEX( ‘)‘ , @s)-CHARINDEX( ‘-‘ , @s))-1) select
@s= SUBSTRING (@s,CHARINDEX( ‘-‘ , @s)+1,(CHARINDEX( ‘)‘ , @s)-CHARINDEX( ‘-‘ , @s))-1) INSERT
INTO
@Property ( [ Name ], [Value] ) VALUES
( @ Name , @Value ) end SELECT
* FROM
@Property --貨品編號和貨號 Item1(7RJ5401130-893)Item2( -0)Item3( -0)Item4( -0) --Item1(8BG4157567-1522)Item2(8BG4154194-1536)Item3(8BG4158060-2135)Item4(8BG4134215-2274) DECLARE
@NameValuePairs VARCHAR (8000) set
@NameValuePairs= ‘Item1(7RJ5401130-893)Item2( -0)Item3( -0)Item4( -0)‘ DECLARE
@NameValuePair VARCHAR (100) DECLARE
@ Name
VARCHAR (50) DECLARE
@Value VARCHAR (50) DECLARE
@Property TABLE
( [ Name ] VARCHAR (50), [Value] VARCHAR (50) ) while len(@NameValuePairs)>0 begin SET
@NameValuePair = LEFT (@NameValuePairs, ISNULL ( NULLIF (CHARINDEX( ‘)‘ , @NameValuePairs) - 1, 0), LEN(@NameValuePairs))) print @NameValuePair SET
@NameValuePairs = SUBSTRING (@NameValuePairs, ISNULL ( NULLIF (CHARINDEX( ‘)‘ , @NameValuePairs), 0), LEN(@NameValuePairs)) + 1, LEN(@NameValuePairs)) print @NameValuePairs SET
@ Name
= SUBSTRING (@NameValuePair, 1, CHARINDEX( ‘-‘ , @NameValuePair) - 1) --判断为空 if (len(@ Name )-CHARINDEX( ‘(‘ , @ Name )) =0 set
@ Name = ‘‘ else SET
@ Name
= SUBSTRING (@ Name , CHARINDEX( ‘(‘ , @ Name )+1,len(@ name )-CHARINDEX( ‘(‘ , @ Name )-1) SET
@Value = SUBSTRING (@NameValuePair, CHARINDEX( ‘-‘ , @NameValuePair) + 1, LEN(@NameValuePair)) if @ Name <> ‘‘ begin INSERT
INTO
@Property ( [ Name ], [Value] ) VALUES
( @ Name , @Value ) end END SELECT
* FROM
@Property declare
@ Name
varchar (200) set
@ Name = ‘Item2( ‘ select
CHARINDEX( ‘(‘ , @ Name ) as
‘top‘ select
len(@ Name ) as
‘0‘ select
len(@ Name )-CHARINDEX( ‘(‘ , @ Name ) ‘len]‘ select
@ Name if len(@ Name )=(len(@ Name )-CHARINDEX( ‘(‘ , @ Name )-1) begin select
@ Name end else begin SET
@ Name
= SUBSTRING (@ Name , CHARINDEX( ‘(‘ , @ Name )+1,len(@ name )-CHARINDEX( ‘(‘ , @ Name )-1) end |
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。