문제

내가 다루는 데이터베이스는 하나의 필드 포함 무엇이 진짜로 저장되어야 합 두 개의 필드가 있습니다.그래서 열 저장되는가"와 같은 첫 번째 문자열~@~두 번째 문자열",여기서"~@~"를 구분 기호.(다하지 않았다,나는 디자인이,나는 그냥 그것을 해결하기 위해 노력하고.)

내가 원하는 쿼리를 이동하는이 두 가지로 열을,그 다음과 같이 보일 것이다:

UPDATE UserAttributes
SET str1 = SUBSTRING(Data, 1, STRPOS(Data, '~@~')),
    str2 = SUBSTRING(Data, STRPOS(Data, '~@~')+3, LEN(Data)-(STRPOS(Data, '~@~')+3))

그러나 나는 찾을 수 없는 어느 해당하는 strpos 존재합니다.

도움이 되었습니까?

해결책

사용자 charIndex :

Select CHARINDEX ('S','MICROSOFT SQL SERVER 2000')
Result: 6

링크

다른 팁

PatIndex 함수를 제공해야 당신의 위치 패턴으로 일부의 문자열입니다.

PATINDEX ( '%pattern%' , expression )

http://msdn.microsoft.com/en-us/library/ms188395.aspx

열에 데이터가 필요한 경우 여기에 내가 사용하는 내용이 있습니다.

  create FUNCTION [dbo].[fncTableFromCommaString] (@strList varchar(8000))  
RETURNS @retTable Table (intValue int) AS  
BEGIN 

    DECLARE @intPos tinyint

    WHILE CHARINDEX(',',@strList) > 0
    BEGIN   
        SET @intPos=CHARINDEX(',',@strList) 
        INSERT INTO @retTable (intValue) values (CONVERT(int, LEFT(@strList,@intPos-1)))
        SET @strList = RIGHT(@strList, LEN(@strList)-@intPos)
    END
    IF LEN(@strList)>0 
        INSERT INTO @retTable (intValue) values (CONVERT(int, @strList))

    RETURN

END

Delimiter로 함수에서 ',', '또는'파라미터가 될 수도 있음)를 바꾸십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top