Със сигурност може да се направи, но SQL е проектиран около аксиомата на атомните стойности (т.е. първата нормална форма ). Разделянето на поле почти никога не е необходимо. Единственият път, когато ще трябва да го използвате в добре проектирана база данни, е с дати, където може да искате да работите само с месеца или годината на полето за дата. Макар че със сигурност ще откриете бази данни, проектирани от някой идиот, с които сте принудени да работите, които нарушават тази основна концепция, лоша идея е да започнете, като се опитвате да разберете как да работите с тези дизайни.
Освен това последната ви стъпка от „съхраняване в тази клетка 239“ ме кара да мисля, че все още разглеждате бази данни, сякаш са електронни таблици. Те не са. Друг основен компонент на базата данни е, че редът на редовете не е важен. Полетата, от друга страна, винаги са свързани с други полета в същия ред. Може да зададете стойността на едно от полетата да бъде нещо, където полето за идентификация на този запис е 239, но като цяло никога няма да се интересувате от факта, че записът е 239-ти.
Въпреки това, ето заявка, която ще направи това, което искате:
Предположение:форматът на полето е "11a22 b". Тоест двуцифрено число, последвано от буква, последвано от друго двуцифрено число, евентуално последвано от интервал и буквата „b“.
SELECT CAST(SUBSTRING(Value,1,2) AS INT)
* CAST(SUBSTRING(Value,3,2) AS INT)
+ CASE RIGHT(Value,1) WHEN 'b' THEN -1 ELSE 0 END
FROM MyTable