GOOGLE ADS

среда, 11 мая 2022 г.

Преобразование VARCHAR с операндом деления в INT

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/4pochodzi 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/ CONVERTnie 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

Комментариев нет:

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...