Puzzle: Write a Shortest Code to Produce Zero.
It has been a long time since we have puzzle on this blog. So I have decided to post this puzzle. You have to write a shortest code which produces digit 0 (zero).
If you think this puzzle is easy, it is not true. I have two very simple but interesting condition for you.
Condition 1: Do not use numbers and arithmetic calculation
Condition 2: Do not use 0 in the code
Condition 3: Do not use function len()
Well, that’s it. So if you were thinking to write code like SELECT 1-1 or PRINT 0 or SELECT LEN(”). You can’t do that. You are not allowed to use numbers, arithmetic calculation or the digit 0 in the code.
Let me show you one valid solution.
SELECT ISDATE('a')
Now, here is the challenge for you. The above code produces the result 0 (zero) and the length of the code is 18.
Here is the final condition for you,
Condition 4: Your Solution should have length lesser than 18 characters.
Now think of the interesting solution and post the result in the comment.
I will be happy to see what you can come up with. If you are also subscribed to my newsletter at https://blog.sqlauthority.com/contact-me/sign-up/ please expect a surprise gift for you if you get the correct answer.
Reference: Pinal Dave (https://blog.sqlauthority.com)
726 Comments. Leave new
Hey – the fast (and cheeky, I know ) solution using the knowledge and conditions could be
PRINT ISDATE(‘a’)
;)
select abs(”)
select abs(”)
This will also yield value of 0, SELECT RIGHT(ASCII(”), ASCII(”)). Otherwise I tried so hard to get same results from SELECT CHAR(NULL), but it’s returning ‘NULL’ instead of 0. But I am happy that I cracked it quickly after seeing this puzzle…
SELECT @@Error
SELECT ISDATE(”)
SELECT ISDATE(”)
select isdate(1)
select CHECKSUM(”)
SELECT LOG(1)
Select $
select str(”)
print @@ERROR
13
SELECT @@LANGID
when language (us_english)
To achieve this functionality we can use below query to do it. Below query will return result as digit 0.
SELECT ISNUMERIC(‘a’);
Works in MySql and 15 characters
SELECT ‘a’&~’a’
Of course, of numbers other than zero are allowed then 1 can be used instead of ‘a’, reducing the length by 4
select CHAR(48)
print $ — prints 0.00
print sin($) — print 0
My answer is now 24in length. SELECT PATINDEX(”,’.’)
select @@ERROR