2010-12-31 4 views
0

у меня есть столбец со значением ProductId - 102, но когда я хочу показать это как ProductId - 1 DeviceId - 02показать 2 значения из одного значения

как я буду показывать?

как будет выглядеть запрос?

благодарит заранее.

+0

Является ли ProductId столбцом int или varchar или char? –

+0

Как правило, устройство всегда 2 цифры? Можете ли вы иметь 97605, где ProductId = 976 и DeviceId = 05 – gbn

+1

Почему вы храните две разные части информации в одном столбце? Если вы когда-либо захотите выполнить поиск по deviceid, вам придется сканировать всю таблицу. –

ответ

2

Это предположить идентификатор устройства является крайней правой 2 цифрой

VARCHAR колонка. Если символ, приведение к VARCHAR и LTRIM

SELECT 
    REVERSE(SUBSTRING(REVERSE(MyCol), 3, 8000) AS ProductID, 
    RIGHT(MyCol, 2) AS DeviceID 

целочисленный столбец

SELECT 
    MyCol/100 AS ProductID, --integer arithmetic 
    MyCol % 100 AS DeviceID -- modulo 
+0

Спасибо, очень много gbn –

1

следующие должно помочь вам

выберите 'ProductID - 102', 'PRODUCTID -' + левый (правый ('PRODUCTID - 102 ', 3), 1),' DeviceId - '+ right (' ProductId - 102 ', 2)

1

Вы обнаружите, что с SQL существует множество способов достижения той же цели. С точки зрения лучшего кодирования вы действительно должны иметь ProductID и DeviceID в 2 столбцах, а затем, если вам когда-либо придется отображать их как единое целое, вы можете их комбинировать. Таким образом, в поиске вы можете быстро найти DeviceID 47 без необходимости разбирать всю базу данных.

Давайте предположим, что у вас есть таблица под названием ПРОДУКТЫ и ProductID имеет значение '1' и DeviceID был '02'

Все, что вам нужно сделать, это

ВЫБРАТЬ ProductID + DeviceID в CombinedID

и он вернется: ProductID - 102

Если у вас есть действующий бизнес причина сделать это так, как вы хотите:

Давайте предположим, что у вас есть таблица под названием ПРОДУКТЫ и ProductID имеет значение «ProductID - 102»

Если вы хотите в полной мере использовать PRODUCTID

ВЫБЕРИТЕ ProductID из продуктов

Если вы хотите, чтобы отделить из Продукт с Device ID

Ваш запрос будет ВЫБРАТЬ LEFT (ProductID, длина (ProductID) -2) + 'Device ID -' + RIGHT (ProductID, 2) от продуктов

Это даст вам идентификатор ProductID и DeviceID ... надеюсь, что поможет

Смежные вопросы