Mam VARCHAR, który zwróci wartość podobną do „40/4".
Czy istnieje sposób na przekonwertowanie tego VARCHAR na INT. Próbowałem rzucać, ale to nie działa.
Próbka:
Declare @test varchar(6) = '40/4'
Select cast (@test as int) * 4
Oczekiwane: 40
Rzeczywisty:
Konwersja nie powiodła się podczas konwertowania wartości varchar „40/4" na typ danych int
Uwaga: Wartość 40/4
pochodzi z wiadomości zapisanej w jednym z systemów i nie można jej zmienić.
Doceń wszelką pomoc w tym zakresie.
Rozwiązanie problemu
CAST
/ CONVERT
nie zadziała, ponieważ '40/4'
nie jest liczbą, tylko ciągiem reprezentującym wyrażenie matematyczne.
Jednym ze sposobów rozwiązania tego jest użycie dynamicznego SQL, np.
declare @test varchar(6) = '40/4';
declare @sql nvarchar(max) = 'select ' + @test + ' * 4';
exec sp_executesql @sql;
Zwroty: 40
Комментариев нет:
Отправить комментарий