Every now and then, I come across an idea where I think “Man, I wish I thought of that”
Reading Brad Shulz’s blog post The Age-Old SELECT * vs. SELECT 1 Debate was one of those times. In that blog post, he explains how relevant the select expressions are when used inside an EXISTS’s subquery. By looking at the official docs here: http://technet.microsoft.com/en-us/library/ms188336.aspx you’ll learn enough to get by. But after reading Brad Shulz’s article, you’ll never forget.
Brad is relatively new to SQL Server. He spent much of his career so far focused on Visual FoxPro and was a Visual Foxpro MVP for years. SQL Server is a new focus for him and he’s already moderating the MSDN T-SQL forum. It won’t be long before he’ll be able to create test database servers with one hand tied behind his back (Interesting trick: Sit on your right hand and try typing “create test database servers”.)
His blog http://bradsruminations.blogspot.com/ deserves more exposure. I was first introduced to the articles he writes in September as he syndicated his blog at SQLServerPedia.
His style is sometimes hilarious, and funny most of the time, but always clever. I’m always surprised when SQL Server writers manage to keep their articles engaging because of the subject matter. Brad seems to keep up just fine.
Also Must-Read (if only for the laughs)
Brad recently agreed to answer a number of questions I had. (Huge thanks Brad for taking the time!)
Michael J. Swart: What skills in Visual FoxPro (VFP) transfer easily to SQL Server? (Any surprising ones?)
Brad Schulz: Just working with the concepts of databases, tables, columns, relations, and indexes for many years in VFP makes the transfer easy. And basic SQL syntax has been part of the VFP language since 1991, so that eliminates an enormous learning curve right away… We VFPers have been doing INSERT, UPDATE, DELETE, and SELECT for almost 20 years.
That being said, though, we would still do a lot of one-row-at-a-time processing, because it was easy and it was lightning fast. But the equivalent of that in SQL (i.e. cursor) is slow as molasses, and I’ve learned a lot of set-based techniques in SQL Server that I had never used before. Thank goodness that I started playing with T-SQL recently… I think I would have gone bananas if I had started with SQL2000 with no CROSS APPLY or CTE’s or window functions (i.e. the OVER clause). How did you guys stay sane before SQL2005 came out?
Michael J. Swart: A common story is that many SQL Server professionals got their start as “accidental DBAs”. How did you get your start? Or how did you come to choose SQL Server as a focus?
Brad Schulz: My story’s not of the accidental variety. I got a B.S. in Computer Science from USC (University of Southern California) in 1981. I actually started out as a Building Design major, which is a combination of Architecture and Civil Engineering, but I dropped the Architecture class about a month into my freshman year, because I could see that I had no drawing talent whatsoever. To fill that void, I ended up taking a FORTRAN class independent study with a Computer Science professor. I gobbled it up, and finished the class in about 2 weeks. The professor asked me to be a tutor for others taking the regular class. I changed my major to Computer Science just before my sophomore year.
When I graduated from college, I immediately started working as a float in my parents’ pool. But after a couple of months, a friend of the family recommended me to a pear-packing company in Kelseyville, California (I found out later they were the largest pear-packer in the state). They had a computer system that no longer worked and the software company that custom wrote it for them was out of business. To make a long story short, they hired me as a consultant (God knows why), and I read the manual on the programming language (a form of BASIC on an HP-250 machine) and ended up re-writing their entire system. From that point, I got work by word-of-mouth, and I’ve been an independent developer ever since.
I worked in dBase II in the early 1980’s, and then eventually moved to dBase III, Quicksilver, Clipper, and then FoxBase+ and FoxPro. I’ve found plenty of FoxPro work for more than 20 years, but it’s not going to last forever, so SQL Server seemed like the logical choice to move to.
Michael J. Swart: What motivates you to moderate the MSDN T-SQL Forum?
Brad Schulz: Back in the 1990’s I participated in the FoxForum on CompuServe, answering questions about FoxPro. I enjoyed helping people, and I learned a lot just by helping others, and I learned new ideas from experts who hung out at the forum. I wanted to duplicate that experience at the MSDN T-SQL Forum. I’ve learned an incredible amount from some very talented people there.
Michael J. Swart: What motivates you to blog?
Brad Schulz: For one thing, I wanted to get myself known a little more in the SQL community. Some of my blogs are humorous or tongue-in-cheek, and that’s just a release for the crazy creative side of me. But I also enjoy writing “how-to” and “discovery” articles… they force me to practice and experiment more with T-SQL. I wrote several articles for FoxTalk and FoxPro Advisor in the 1990’s, but the turnaround time took forever, from submission through the editing process, and then waiting months for eventual publication. In contrast, I like the immediate publication of blog posts and getting immediate feedback.
Michael J. Swart: What’s one thing you can say about yourself that would make the SQL Server crowd say “Nifty”?
Brad Schulz: What’s a word that means “stylish; smart; fine; excellent” and rhymes with “thrifty”? Okay, scratch that.
Let me see… I’m an adopted child whose birth-mother was German Catholic and who played the violin. I always knew I was adopted. My birth-mother had requested I be placed with a German Catholic family (which I was, though my mother was the Catholic and my father was the German). My parents knew about the violin, and figured there was musical talent in me, so they set me up with piano lessons when I was 5. I’ve been playing piano ever since (45 years). The weird, spooky part is that I asked for more detailed non-identifying information from the adoption agency when I was about 25 years old, and when I received it, I was floored when it said that my birth-mother worked in and had a talent for “data processing” (whatever that meant in the 1950’s). Talk about “nature” vs “nurture”… I think the “nature” argument wins hands-down!
I also have a passion for the stock market, which I discovered in 1998. You can read more about that at my (now-on-hiatus) website http://www.stockciphering.com/whatis.htm. The stock market is just one huge database of stocks and daily prices, isn’t it? And so I wrote a suite of Visual FoxPro (VFP) programs to calculate technical analysis figures for stocks and produce buy signals for them, and I created the website to try to ca
pitalize on it. The website never really set the world on fire, but in “eating my own dog food” and using the data for my own trading, I did very well… From Jan2003 to Mar2009, my IRA (where I do my trading) more than quadrupled in value, compared to the S&P500 which lost 25% of its value during that same period.
Michael J. Swart: Thanks Brad