Mam do czynienia z irytującą bazą danych, w której jedno pole zawiera to, co powinno być przechowywane w dwóch osobnych polach. Tak więc kolumna jest przechowywana w stylu "Pierwszy ciąg ~ @ ~ Drugi ciąg", gdzie "~ @ ~" jest ogranicznikiem. (Ponownie, nie zaprojektować to, po prostu próbuję to naprawić.)Serwer SQL: jakikolwiek odpowiednik strpos()?
Chcę kwerendy, aby przenieść to na dwie kolumny, które wyglądają mniej więcej tak:
UPDATE UserAttributes
SET str1 = SUBSTRING(Data, 1, STRPOS(Data, '[email protected]~')),
str2 = SUBSTRING(Data, STRPOS(Data, '[email protected]~')+3, LEN(Data)-(STRPOS(Data, '[email protected]~')+3))
Ale Nie mogę stwierdzić, że istnieje jakikolwiek odpowiednik strpos.
Należy zauważyć, że kolejność argumentów jest tutaj przełączana, co prowadzi do wielu błędów "String lub binary data would be ścięte", jeśli pozostawisz igłę i stóg siana w tej samej kolejności, co strpos. – Noumenon