Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak wybrać określone dane między cytatami ()

to jest Brzydkie , ale w końcu zadziała:

KOLUMNA ='jksjdksls#$#[email protected]@kskjfjf,"123,456,789" lsnslkdswfnslsjfls'

left( right(COLUMN,len(COLUMN)-instr(COLUMN,"""")), instr( right(COLUMN,len(COLUMN)-instr(COLUMN,"""")), """") -1 )

--> 123,456,789

Oto, co się dzieje:

  • Przyjmujemy ten ciąg 'jksjdksls#$#[email protected]@kskjfjf,"123,456,789" lsnslkdswfnslsjfls'
  • znajdź pierwsze wystąpienie „ z instr(COLUMN,"""") --> zwraca 24
  • weź prawy koniec ciągu za pomocą. Dlatego musimy wziąć długość łańcucha za pomocą len(COLUMN) --> 55 i odejmij pozycję pierwszego „(24)
  • wtedy musimy znaleźć drugi " za pomocą instr() w prawym ciągu, który musimy ponownie utworzyć za pomocą right(COLUMN,len(COLUMN)-instr(COLUMN,"""")) i odejmij 1 dla „.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zadanie SQL Server z precyzyjnym czasem

  2. Dowiedz się, jaka jest wywołująca procedura składowana w SQL Server

  3. SET a SELECT podczas przypisywania zmiennych?

  4. Łączna liczba SQL

  5. SQL Server 2005 Ustawianie zmiennej w wyniku zapytania wybierającego