0

I have written the following query:

substring(SELECT DB_NAME()), 1, 1)

I wish to convert the char which this query returns in to a binary string like "11001101".

What is the correct way to do it?

Thanks

marc_s
  • 732,580
  • 175
  • 1,330
  • 1,459
pwnphpown
  • 57
  • 1
  • 1
  • 6

1 Answers1

1

You could use ASCII() to convert the character to a decimal integer and then use the script given on this answer to convert that to a "binary" string

You will possibly end up with something like this:

DECLARE @i INT = ASCII(SUBSTRING((DB_NAME()),1,1)) SELECT CASE WHEN CONVERT(VARCHAR(8), @i & 128 ) > 0 THEN '1' ELSE '0' END + CASE WHEN CONVERT(VARCHAR(8), @i & 64 ) > 0 THEN '1' ELSE '0' END + CASE WHEN CONVERT(VARCHAR(8), @i & 32 ) > 0 THEN '1' ELSE '0' END + CASE WHEN CONVERT(VARCHAR(8), @i & 16 ) > 0 THEN '1' ELSE '0' END + CASE WHEN CONVERT(VARCHAR(8), @i & 8 ) > 0 THEN '1' ELSE '0' END + CASE WHEN CONVERT(VARCHAR(8), @i & 4 ) > 0 THEN '1' ELSE '0' END + CASE WHEN CONVERT(VARCHAR(8), @i & 2 ) > 0 THEN '1' ELSE '0' END + CASE WHEN CONVERT(VARCHAR(8), @i & 1 ) > 0 THEN '1' ELSE '0' END

Community
  • 1
  • 1
High Plains Grifter
  • 1,357
  • 1
  • 12
  • 36