Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: MsSql 2005 -Jak podzielić string na kilka fragmentów wd wzorca
Forum PHP.pl > Forum > Bazy danych > Microsoft SQL Server / MSDE
stachuf11
witam
jest zmienna

  1. SET @zm='c:\kat1\kat2\kat3\plik.1250'



chcę z tej zmiennej wyciągnąc nazwę pliku bez rozszerzenia tylko samo 'plik', jak to osiągnąć w sqlu ?
pozdrawiam
Stachu
Mad_John
Znalazłem taki kawałek kodu do parsowania, może się przyda

  1.  
  2. --declare the list of Cities
  3. DECLARE @CityList varchar(8000)
  4. SET @CityList = 'Milwaukee|Chicago|New York|Seattle|San Francisco'
  5.  
  6. --declare the delimeter between each City
  7. DECLARE @Delimeter char(1)
  8. SET @Delimeter = '|'
  9.  
  10. --Parse the string and insert each city into the @tblCity table
  11. DECLARE @tblCity TABLE(City varchar(50))
  12. DECLARE @City varchar(50)
  13. DECLARE @StartPos int, @Length int
  14. WHILE LEN(@CityList) > 0
  15. BEGIN
  16. SET @StartPos = CHARINDEX(@Delimeter, @CityList)
  17. IF @StartPos < 0 SET @StartPos = 0
  18. SET @Length = LEN(@CityList) - @StartPos - 1
  19. IF @Length < 0 SET @Length = 0
  20. IF @StartPos > 0
  21. BEGIN
  22. SET @City = SUBSTRING(@CityList, 1, @StartPos - 1)
  23. SET @CityList = SUBSTRING(@CityList, @StartPos + 1, LEN(@CityList) - @StartPos)
  24. END
  25. ELSE
  26. BEGIN
  27. SET @City = @CityList
  28. SET @CityList = ''
  29. END
  30. INSERT @tblCity (City) VALUES(@City)
  31. END
  32.  
  33. --Show all Cities in the @tblCity table
  34. SELECT * FROM @tblCity



Proponuje zrobić pętlę i wyznaczyć ostatnią pozycję slasha, później od tej pozycji użyć funkcji RIGHT (dostaniemy nazwę pliku z rozszerzeniem). Można zrobić to samo, żeby znaleźć pozycję kropki i użyć funkcji LEFT(). Przypuszczam, że da się zrobić prościej ale nic innego mi do głowy nie przyszło...
erix
A po co tak?

PATINDEX + SUBSTRING
stachuf11
dziekuję serdecznie za pomoc
myślałem że jest jakas gotowa funkcja jak np w php explode, ale widać ze nie ma, trzeba troszkę kombinowac
pozdrawiam
Stachu
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.