Удалить десятичные разряды из результата varchar (32) - PullRequest
0 голосов
/ 11 ноября 2018

Я использую пакетный сценарий SQL и Windows для загрузки инвентаря из нашей POS, а затем загружаю его на стороннюю платформу. Файл успешно загружается и загружается, но сторонняя платформа довольно требовательна к форматированию. В частности, он не будет принимать десятичное место для столбца под названием «Количество».

Я искал и пробовал разные подходы, но, похоже, не нашел подходящего. Хитрый аспект этого sql заключается в том, что мне пришлось использовать соединение для создания строки заголовка, и я использую формат varchar (32). Я разместил свой sql ниже, какие-либо предложения?

set nocount ON

SELECT CAST('sku' as VARCHAR(32)) AS sku, 
CAST('quantity' as VARCHAR(32)) AS quantity
UNION
SELECT CAST(IM_BARCOD.BARCOD AS 
VARCHAR(32)) as sku, case when 
IM_INV.QTY_AVAIL > 0 then 
CAST(IM_INV.QTY_AVAIL AS VARCHAR(32)) else 
CAST(0 as VARCHAR(32)) END as quantity
FROM IM_BARCOD INNER JOIN IM_INV ON 
IM_INV.ITEM_NO = IM_BARCOD.ITEM_NO INNER 
JOIN IM_PRC ON IM_INV.ITEM_NO = 
IM_PRC.ITEM_NO INNER JOIN 
IM_ITEM ON IM_INV.ITEM_NO = IM_ITEM.ITEM_NO
UNION
SELECT CAST(IM_BARCOD.BARCOD AS 
VARCHAR(32)) as sku, case when 
IM_INV_CELL.QTY_AVAIL > 0 then 
CAST(IM_INV_CELL.QTY_AVAIL AS VARCHAR(32)) 
else CAST (0 as VARCHAR (32)) END as 
quantity FROM IM_BARCOD INNER JOIN IM_PRC 
ON IM_BARCOD.ITEM_NO = IM_PRC.ITEM_NO INNER 
JOIN IM_INV_CELL ON IM_BARCOD.ITEM_NO = 
IM_INV_CELL.ITEM_NO AND 
IM_INV_CELL.DIM_1_UPR=IM_BARCOD.DIM_1_UPR 
AND IM_INV_CELL.DIM_2_UPR = 
IM_BARCOD.DIM_2_UPR AND 
IM_INV_CELL.DIM_3_UPR =IM_BARCOD.DIM_3_UPR 
INNER JOIN 
IM_ITEM ON IM_BARCOD.ITEM_NO = 
IM_ITEM.ITEM_NO
...