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
select abs(”)
select ~-1
print ~-1
PRINT ISDATE(‘a’)
Saves 1 char from the example
SELECT ACOS(1) — that’s 14 characters!
PRINT ISDATE(‘a’)
thank you for making me review some of the in-built functions. i came up with the following functions that can return zero.
1. print @@trancount
2. print @@rowcount
3. print isdate(‘a’)
print str(”)
print @@error
SELECT SIN(”)
or
PRINT SIN(”)
select @@TRANCOUNT — 18 characters, but doesn’t work if you’re in a transaction :(
The following is 14 characters:
select @@error
select isdate(”)
select char(48)
select cast(‘false’ as bit)
PRINT CHECKSUM(”)
____________________
18 chars with space
SELECT STR(”)
SELECT ABS(”)
SELECT ISDATE(”)
SELECT isdate(”)
Well, this one works for me, but not everyone:
select @@LANGID
select @@ERROR — 14 characters….. works if you’re like me, never produce error ( just kidding :P )
select @@FETCH_STATUS