Less Than Dot is a community of passionate IT professionals and enthusiasts dedicated to sharing technical knowledge, experience, and assistance. Inside you will find reference materials, interesting technical discussions, and expert tips and commentary. Once you register for an account you will have immediate access to the forums and all past articles and commentaries.
Your profile
Tag cloud
.net android asp.net asp.net mvc azure backup bigdata book business intelligence c# community continuous delivery database denali excel gotcha how to indexing java mongodb nancy nhibernate nosql performance powershell ruby security silverlight sql sql advent 2012 sql friday sql server sql server 2000 sql server 2005 sql server 2008 sql server 2008 r2 sql server 2012 sql server denali sqlcop ssis ssms ssrs structuremap syndicated t-sql tip unit testing vb.net visual studio 2010 windows 7
Authors
- SQLDenis (585)

- Christiaan Baes (chrissie1) (528)

- Ted Krueger (onpnt) (332)

- Jes Schultz Borland (grrlgeek) (140)

- Eli Weinstock-Herman (tarwn) (117)

- Alex Ullrich (51)

- George Mastros (gmmastros) (46)

- Koen Verbeeck (31)

- Naomi Nosonovsky (27)

- Axel Achten (axel8s) (23)

- David Forck (thirster42) (22)

- Kevin Conan (18)

- chopstik (18)

- Rob Earl (14)

- thatrickguy (12)

- More...
Main Categories
Search
Google Ads
Latest Comments
In response to: How I prepared myself for the MCSE certification
Is there a training kit for 70-466 and 70-467.
Could you provide some links of free sources for these 2 exams.
Regards,
Shezan
In response to: Building a SharePoint 2013 BI Demo Environment Part 1 – Introduction
I've been meaning to test this out, but here in Belgium we have quite slow upload speeds, so uploading 40GB into Azure is a bit problematic.
In response to: Building a SharePoint 2013 BI Demo Environment Part 1 – Introduction
In response to: SQL Is Hard
Walter: Thanks, I have a version number in the bottom right that I stamp on from the build process, I'll add in the date as well. I've also started using the @sqlishard twitter account to announce updates, I'll do a follow-up post shortly with more information, as several people have asked for ways to stay up to know when exercises or features are added.
Philip: But if I had named it SQLisDifficult it would have been harder to type ;)
In response to: Stepping Outside the Comfort Zone
In response to: SQL Is Hard
In response to: SQL Is Hard
In response to: Stepping Outside the Comfort Zone
In response to: Create XML Files Out Of SQL Server With SSIS And FOR XML Syntax
I am new to the blog...and SSIS. I have tried all of the above. And I now get a file that says System._ComObject. Before I was getting one that said had the begining tags I needed (opening and closing roots). But no information. Each time I would change one thing I would get a million errors...so. Now I don't know what works and what does not. So the actual XML file I need I have a SQL script for...and the XML file comes out perfect for my needs. But I don't know how to save it and then be able to move it to a share drive, so that the information contained insided can be uploaded to another application...which REQUIRES XML Explicit format.
Can you help?
Nicole Wyscaver
In response to: SQL Server 2008 Proximity Search With The Geography Data Type
How is this possible when the ranges are supposed to be -180 to 180? If anyone knows why I am getting this error, please let me know. Thank you.
In response to: How I prepared myself for the MCSE certification
So taking only the 70-466 exam without doing any other exam is pointless regarding certifications.
In response to: How I prepared myself for the MCSE certification
I want to know can I directly write 70-466 exam without writting 70-461,70-462,70-463.
In response to: SQL Is Hard
A few more ideas/comments that come up to my mind after a few moments with your app:
----
1/ The menu on the could easily be hidden.
Once you start on an exercise, maybe you'll follow one after another, no need to have that menu in this case (maybe just a reminder that pops up to see where you are, but no need to eat a third of the screen)
----
2/ Let the user have a look at the model.
Present the user with a graph representing the model, give an overview and sample data.
Without a clear context, exercises become unecessary hard, and a bit too abstract.
A picture is worth a thousands words
This could also be a great opportunity to introduce data modeling, how and why we need relations between tables (eg: for users coming from excel/access who tend to put all data in a flat format)
----
3/ Make instruction clear.
The text block is a bit too uniform.
User needs to see clearly the 3 sections:
- Explanations
- Example
- Exercise
Maybe use some folding panels to make a clear separation (although it woulb be cool to be able to see all three at once)
Emphasis on the text elements that matter in the exercise summary (use bold text and/or color to highlight table names and column names, much like Zelda games)
Following point #2, exercises could also provide a sample of the expected result data, this could be really useful for LEFT/RIGHT joins examples (eg: for an hypotetical RIGHT JOIN exercise, show all rows resulting from the LEFT JOIN exercise, and rule out the rows that are filtered out, helps the user spot the difference, what it really does)
----
Keep up the good work, that's a nice initiative, and a useful quick start for users new to SQL
Note: maybe change the name, SQL is hard indeed, but haters gonna hate ;)
In response to: SQL University - SQL Server Reporting Services Configuration Files Overview
In response to: SQL Is Hard
4.0 does seem to be causing a lot of problems, it has the next highest error rate after 1.0 and 1.2 (which I just modified last night). 2.6 seems to be getting a pretty high rate of success (90%), so it's lower priority to tweak at the moment.
At least for now I am not setup for taking submissions, but given the amount of feedback I've gotten, I may setup a feedback site to accept submissions of both new SQL statements and other features like the certificate and training ideas. Still waiting for the morning coffee to brew, so I'll let that one simmer for a while.
I hadn't seen plsqlchallenge, thanks :)
In response to: SQL Is Hard
On S2.6, your use of the word 'plus' in the question is a little confusing.
On S4.0, (as an old sql guy) I can come up with lots of answers for the question that generate the right result, but it took me a while to get the "right" result.
I assume you've got some sort of database with questions, and answers. Here's a million $ idea for you...enable some framework where i can submit my sql questions and answers and license to companies that may want some special training over and above what you offer.
Along with the previous suggestion, I'd be happy to help devise questions and answers. I'm primarily an Oracle guy, so i know there's a slightly different flavor as statements get more complex for SQL Server, MYSQL, etc. There's lots of room for growth with stored procs, functions, triggers, indexes, dba stuff...etc.
Anyway i can print a "Completed" certificate i can show my boss or hang in my office?
Have you seen http://www.plsqlchallenge.com/ ?
Keep up the good work. Let me know if you need help with any parts.
In response to: SQL Is Hard
I'm not set up to accept pull requests or other forms of assistance at the moment, a lot of this is still coming together. Up until yesterday the exercises were still hardcoded into the application, but I already have some ideas on offering helpful tips (which I think would fit #1 and 3).
I like the idea behind 4 and agree the explanation box is a little limiting, but at the moment that's also forcing me to keep these simpler. For those of us that have been doing SQL for a little while, this set of SELECT exercises will move slow, when I get some more advanced stuff in there that constraint may stop being helpful.
In response to: SQL Is Hard
This could turn into a very useful noob* tool.
When the more advanced topics are created, this site will also be a refresher for the experienced amateurs like me (I still need to look up INNER/OUTER LEFT/RIGHT join behavior when constructing an advanced query).
My suggestions.
1) Add a prequel to the lessons already there. Just simple, cut and paste, working queries to show results. That will give the low-confidence, "I have never seen SQL before" types immediate feedback.
2) In lesson S4.0, you jumped right into the full column name (table.column) syntax without warning. If you don't already intend to, you really should have some single-table lessons that gently introduce the col name variations.
3) Along the lines suggested above by others, maybe a "Give me a hint" button can activate after several failed attempts. And maybe an "Okay, I give up" button after several more?
4) How about a "learn more" button/tab that displays a much more detailed discussion of the lessons topic? As the topics get more complex, I don't think the little "instructions" box will work very well.
<sarcasm>
5) To pacify all the "SQL is easy" haters above, maybe you should re-brand this to "www.nontrival-sqlishard.com"
</sarcasm>
All in all, a great tool.
PS - Are you are interested in outside (free) help on this project. I might have some time to contribute. (If so, I assume you can get my email through this posting).
* I say noob with all respect. We are/were all "noobs" on some topic!
In response to: Data Visualization Tips & Tricks at Community Day 2013
In response to: SQL Is Hard
I'm going to make some tweaks to the application and my priority list based on the feedback. I also need to see if I can duplicate wazz's issue with needing to scroll, so far I haven't run into this issue int he resolutions I have tried, once I can duplicate it I'll tweak the CSS to scale better to that size.
In response to: SQL Is Hard
I don't really have much to comment generally on this tool since I am not really its target audience and I haven't given much thought to trying to teach others SQL.
Given a database and a desired result figuring out the needed code (SQL or otherwise) is going to be fairly doable - performance requirements not withstanding.
Instead of simply trying to teach people SQL it would seem to me that trying to teach people to solve data problems in a specific domain would provide a better approach. Think "word problems" in math instead of solving simple formulas. Creating a list of formulas to solve may help teach the mechanics but story problem solving is (I say this without proof) better for actually learning and remembering those skills in a meaningful way.
In response to: SQL Is Hard
To those commenting that SQL is not hard, I would say that simple SQL is not hard, but real world applications of SQL are rarely simple. Most people try to do things with loops or "row by agonizing row" as Jeff Moden calls it. That is easy but it's the wrong way to do it. Being good at SQL requires truly understanding set theory. It's a serious branch of mathematics that underpins relational database theory, and if you think that's easy as a beginner then you're either a genius or an arrogant fool who has barely scratched the surface.
Beyond the language, when you start really working with SQL you will find that every database you come across is completely different and you'll often have to reverse engineer the tables to create your own entity relationship diagrams and wade through stored procedures, triggers, functions, ORM code and sometimes front-end application code with inline SQL etc etc just to understand why it was designed that way and how you can work with it. You'll also end up having to work with different vendor databases such as Oracle, postgres, MySQL, sybase, pervasive, SQL Server, DB2 and now things like HIVE and they all have their quirks and non-standard implementations of the ANSI standard SQL. Then you'll be using procedural extensions to the SQL dialects like T-SQL and PL/SQL and it goes on.
There are no easy languages, they all take learning, practice and experience to master and any interactive learning tool like this is a blessing to those just starting out.
In response to: SQL Is Hard
Btw, to those buffoons who write that SQL is not that hard (and can be learned in a day! LOL), please list your websites or who you work for...so that I may never, ever entrust my credit card or private information to you or those you work for; like Dan Sutton ;-)
Keep up the good work.
In response to: Checkout your twitter analytics from twitter itself
I'll try to check again later. I have had my account for a while but didn't start actively using it until a couple of years ago. So maybe it's for more active users?
In response to: SQL Is Hard
In response to: Checkout your twitter analytics from twitter itself
In response to: SQL Is Hard
SQL isn't hard because it is bad. SQL is hard for some people because the underlying concepts of the relational database force them to change their thought process from procedural to set based. The SQL language is a (mostly) elegant solution to handling that paradigm.
I applaud this project - what a great idea!
In response to: SQL Is Hard
In response to: SQL Is Hard
What this says to me, is that SQL is hard because SQL is bad. The language obscures what it is intended to convey.
In response to: SQL Is Hard
In response to: SQL Is Hard
excellent. i would point people there.
couple design things:
- "let's get started" on home page MUST be bigger and more obvious. giant button.
- remove some gray-space between exercise and query designer and/or make designer a tiny bit shorter.
- move the "excellent, let's continue" result to the top of the designer. it might wreck my previous comment about saving space, but because i had scrolled down a bit to see the entire designer, i didn't see "let's continue" come up when i finished the exercise.
- possibly add some css to the 'execute' btn. i didn't see it at first. no biggie.
> i think i have a pretty average-sized monitor and i have to scroll about 1 inch to see everything; annoying to have to constantly scroll a tiny distance just to be sure i'm not missing something at the top or bottom. just a few tweaks here and there (slightly narrower left column could help) and scrolling would be gone. (i know there will prob be scrolling sometimes for longer exercises, etc.. i would keep the designer visible at all times.)
In response to: Checkout your twitter analytics from twitter itself
In response to: SQL Is Hard
In response to: SQL Is Hard
In response to: Checkout your twitter analytics from twitter itself
In response to: Checkout your twitter analytics from twitter itself
In response to: SQL Is Hard
One thing that might be nice is a sign-up form for people who want to know when you get a chance to add more content.
In response to: SQL Is Hard
Earlier Chris: Good idea, that format for dates is how I write them by default now, so I didn't even recognize the potential for confusion, I like the solution of using the 30th. On the other exercise, I've seen a couple people have similar issues with order by statements I wasn't expecting. Currently I verify records with the assumption that they are going to be in the order I get when executing the solution statement, but maybe i can add an order-less comparison. You would still be able to get a false positive success if you managed to do an incorrect query that returned the right number of records and the 1st 100 were in the answer key, but that seems like i would be hard to do accidentally.
"no" and "lol": There is a lot more to SQL than just a few commands, being able to use CROSS and LEFT joins well can significantly simplify a lot of logic, windowing functions like ROW_NUMBER can collapse statements that used to require a lot more work (or application processing), query tuning (which I hope to get to at some point) is not at all simple or something you would learn in a day. After learning some basics it is easy to fall for the trap that we know everything there is to know about a subject, hopefully you'll come back in the future and be open to trying some of the more advanced exercises (provided, of course, that I actually get to those :P).
In response to: SQL Puzzle.. How many uppercase and lowercase characters in a column
How about this:
DECLARE @S_INPUT varchar(20) = 'þÆ.er8tY99öx#mÍx'
DECLARE @S_LOWER varchar(20) = LOWER(@S_INPUT)
DECLARE @S_UPPER varchar(20) = UPPER(@S_INPUT)
DECLARE @S_I varchar(20)
DECLARE @S_L varchar(20)
DECLARE @S_U varchar(20)
DECLARE @I int = 0
DECLARE @L int = 0
DECLARE @U int = 0
SELECT @S_INPUT
UNION ALL SELECT @S_LOWER
UNION ALL SELECT @S_UPPER
DECLARE @S_LEN int = LEN(@S_INPUT)
DECLARE @COUNT_OTHERS int = 0
DECLARE @COUNT_LOWER int = 0
DECLARE @COUNT_UPPER int = 0
DECLARE @IDX int = 1
WHILE @IDX <= @S_LEN
BEGIN
SET @S_I = SUBSTRING(@S_INPUT, @IDX, 1)
SET @S_L = SUBSTRING(@S_LOWER, @IDX, 1)
SET @S_U = SUBSTRING(@S_UPPER, @IDX, 1)
SET @I = ASCII(@S_I)
SET @L = ASCII(@S_L)
SET @U = ASCII(@S_U)
IF @L = @U
BEGIN
SET @COUNT_OTHERS = @COUNT_OTHERS + 1
END
ELSE IF @L = @I
BEGIN
SET @COUNT_LOWER = @COUNT_LOWER + 1
END
ELSE
BEGIN
SET @COUNT_UPPER = @COUNT_UPPER + 1
END
SET @IDX = @IDX + 1
END
SELECT @COUNT_LOWER AS 'Lower count', @COUNT_UPPER AS 'Upper count', @COUNT_OTHERS AS 'Count others'
In response to: SQL Is Hard
In response to: SQL Is Hard
One has to master 1 command ...the SELECT, the other 3 are trivial along with the rest of the syntax.
first learn SELECT...WHERE , then how to JOIN, then GROUP BY and then OVER and maybe some kinky advanced stuff.
Overall it can all be learned in a day i'd say.
Then it comes the database management and administration which is another stuff, but if you do not design or administrate dbs, just knowing SQL to work with data is not all that hard imo.
In response to: Checkout your twitter analytics from twitter itself
Or disable it.
In response to: SQL Is Hard
I look forward to seeing it develop more - and then learning more SQL from it, myself!
A really worthwhile project!
Thanks
In response to: Checkout your twitter analytics from twitter itself
In response to: Testing backup compression in SQL Server 2008
Free fully functional version (32-bit) supports compression and TSM. (download: http://sqlgzip.com)
Additionally you can specify compression rate as standard gzip or zip protocol are used.

LTD Social Sitings
Note: Watch for social icons on posts by your favorite authors to follow their postings on these and other social sites.