Declare @a varchar(1000)
Declare @i int
Set @i = 0
Set @a = 'A,B,C,D,E,F,G,H,I'
While(@i <=Len(@a))
Begin
Print Substring(@a,CHARINDEX(',',@a)+@i-1,1)
Set @i = @i + 2
ENd
可以取出里面所有的字母
取子串函数
1、left()
LEFT (
返回character_expression 左起 integer_expression 个字符。
2、right()
RIGHT (
返回character_expression 右起 integer_expression 个字符。
3、substring()
SUBSTRING (
参数:
expression 字符串、二进制字符串、文本、图像、列或包含列的表达式。请勿使用包含聚合函数的表达式。
start 整数或可以隐式转换为 int 的表达式,指定子字符串的开始位置。
length 整数或可以隐式转换为 int 的表达式,指定子字符串的长度。
返回值:
如果 expression 是一种支持的字符数据类型,则返回字符数据。如果 expression 是一种支持的二进制数据类型,则返回二进制数据。如果 start = 1,则子字符串从表达式的第一个字符开始。
看看这个函数吧
仔细看看这三个函数 你就会明白怎么做了
select case when CHARINDEX(',',k,0)>0 then SUBSTRING(k,0, CHARINDEX(',',k,0))
else '' end
from table
SELECT LEFT(K,CHARINDEX(',',K)-1)
select substr('a,b,c, ',1,instr('a,b,c,',',') -1) from dual