어떤 table내의 column내용이 하나의 select query입니다.
예를 들면 select a, b, c from emp;
그런데 이중 a, b, c만 빼오고싶습니다.
그래서 substring을 사용하고 싶은데 시작문자는 select이후부터 from 전까지의 문장을 가져올려면
어떻게 해야할지 모르겠습니다.
declare @str varchar(1000), @compare1 varchar(100), @compare2 varchar(100), @in_compare1 int, @in_compare2 int
set @str = 'select a, b, c from emp'
set @compare1 = 'select'set @compare2 = 'from emp'
select @in_compare1 = patindex('%' + @compare1 + '%', @str) if @in_compare1 > 0 Begin select @str = Right(@str, len(@str) - len(@compare1)) end
select @in_compare2 = patindex('%' + @compare2 + '%', @str) if @in_compare2 > 0 Begin select @str = Left(@str, len(@str) - len(@compare2)) end
select Ltrim(Rtrim(@str))
다른 로직이 있을지 모르나 substring 함수에 충실하여 뽑은 것입니다.
핫 감사합니다.
근데 혼자 이렇게 저렇게 테스트해보다가 만들었습니다.
select substring(b, 11, CHARINDEX('FROM', b)-15 ) from a
11과 15는 상황에 따라 가변이겠지만...