Merci à cette link
Il utilise encore remplace, mais il semble un peu mieux que la réponse précédente:
CREATE FUNCTION [dbo].[HexToBinary]
(
@hex varchar(200)
)
RETURNS varchar(1000)
AS
BEGIN
SET @HEX=REPLACE (@HEX,'0','0000')
set @hex=replace (@hex,'1','0001')
set @hex=replace (@hex,'2','0010')
set @hex=replace (@hex,'3','0011')
set @hex=replace (@hex,'4','0100')
set @hex=replace (@hex,'5','0101')
set @hex=replace (@hex,'6','0110')
set @hex=replace (@hex,'7','0111')
set @hex=replace (@hex,'8','1000')
set @hex=replace (@hex,'9','1001')
set @hex=replace (@hex,'A','1010')
set @hex=replace (@hex,'B','1011')
set @hex=replace (@hex,'C','1100')
set @hex=replace (@hex,'D','1101')
set @hex=replace (@hex,'E','1110')
set @hex=replace (@hex,'F','1111')
RETURN @hex
END
GO
select
CASE when col2 IN ('-1', '-9') THEN col2
ELSE [dbo].[HexToBinary] (col2)
END as val
from
(
SELECT 'FFF8' as col2
UNION ALL
SELECT '-1' as col2
UNION ALL
SELECT 'FFF6' as col2
UNION ALL
SELECT '-9' as col2
) a
quel est le type de données? –
le type de données est nvarchar –
et que voulez-vous faire si la valeur est -1 ou -9? –