From 6eef3d07ffc250303378e6f1b134eb87ffb93f28 Mon Sep 17 00:00:00 2001 From: Chad Baldwin Date: Tue, 9 Jul 2024 03:40:15 -0400 Subject: [PATCH] new blog post: Fun with Unicode characters in SQL Queries --- ...4-07-09-fun-with-unicode-in-sql-queries.md | 177 ++++++++++++++++++ img/unicodequeries/20240708_155925.png | Bin 0 -> 7028 bytes img/unicodequeries/20240708_160956.png | Bin 0 -> 7248 bytes img/unicodequeries/20240708_161344.png | Bin 0 -> 6243 bytes img/unicodequeries/20240708_164754.png | Bin 0 -> 11213 bytes img/unicodequeries/20240708_171010.png | Bin 0 -> 7382 bytes 6 files changed, 177 insertions(+) create mode 100644 _posts/2024-07-09-fun-with-unicode-in-sql-queries.md create mode 100644 img/unicodequeries/20240708_155925.png create mode 100644 img/unicodequeries/20240708_160956.png create mode 100644 img/unicodequeries/20240708_161344.png create mode 100644 img/unicodequeries/20240708_164754.png create mode 100644 img/unicodequeries/20240708_171010.png diff --git a/_posts/2024-07-09-fun-with-unicode-in-sql-queries.md b/_posts/2024-07-09-fun-with-unicode-in-sql-queries.md new file mode 100644 index 0000000..c086d73 --- /dev/null +++ b/_posts/2024-07-09-fun-with-unicode-in-sql-queries.md @@ -0,0 +1,177 @@ +--- +layout: post +title: "Fun with Unicode characters in SQL Queries" +description: "Unicode characters are a fun and useful way to help make your query results easier to read and even make some fun graphics." +date: 2024-07-09T07:00:00-07:00 +tags: T-SQL +#image: img/postbanners/2022-06-02-whats-new-in-sql-server-2022.png +--- + +I never thought this would make for a good blog post, but here we are. Every single time I share a query that uses Unicode characters, someone _always_ asks me what it is and why I'm using it. So now I have this blog post I can send to anyone who asks about it πŸ˜„. + +I don't want to get too far into the weeds explaining encodings, code points, etc. Mostly because you can just Google it, but also because it's very confusing. Despite all the hours I've spent trying to learn about it, I still don't get a lot of it. There's also a lot of nuance regarding encodings when it comes to SQL Server, different collations, and different SQL versions. However, I did come across [this blog post](https://sqlrebel.org/2021/07/29/utf-16-and-utf-8-encoding-sql-server/){:target="_blank"} that seems to break it down well. + +For the purposes of this post, all you really need to know is Unicode is what allows applications to support non-english text (`データベース`), special symbols (`β€’`, `β„’`, `Β°`, `Β©`,`Ο€`), diacritics (`smΓΆrgΓ₯sbord`, `jalapeΓ±o`, `rΓ©sumΓ©`), and much more. Unicode makes all this possible. + +Unicode is HUGE, and there are a ton of characters that most people don't even know exist. Sometimes I find myself scrolling through Unicode lookup sites just to see if I can find any cool/fun/useful characters I could use...A totally normal Saturday afternoon activity...πŸ‘€ + +Out of all the random Unicode characters I've found...the one I use on a daily basis is `β–ˆ`...that's it, just a plain boring block. For the most part, this blog post will be about how this one boring character can help make your SQL queries a little easier to look at. + +---- + +## How do you type these!? + +Before anyone asks "how do you type these"...To be honest, I don't, because I use SQL Prompt snippets where I've copy pasted my most used Unicode characters. I guess if you _really_ want to type them yourself every time, you can use keyboard shortcuts. [Here's a website I found](https://www.alt-codes.net/){:target="_blank"} that has a list of common Unicode symbols and their "alt codes". Where you hold alt and type the code. In the case of `β–ˆ`, you would type `alt+219`. + +β€Ό A very important note...if you are using ANY Unicode characters in a string literal in SQL Server, you have to make sure you prefix the string with `N`. Otherwise the Unicode characters won't render, and you'll just end up with blanks, question marks, etc. For example: + +```tsql +SELECT N'This is a Unicode string in SQL Server! πŸ¦„' +SELECT 'This is NOT a Unicode string in SQL Server! 😭' +``` + +---- + +## Adding a column set separator + +Have you ever written a query that joins a whole bunch of tables with a `SELECT *` at the top? ...Of course you have, you're a SQL developer. The problem is now you're staring at a massive dataset 100 columns wide. + +For example... + +```tsql +SELECT * +FROM sys.indexes i + JOIN sys.objects o ON o.[object_id] = i.[object_id] + JOIN sys.stats s ON s.[object_id] = i.[object_id] AND s.stats_id = i.index_id + JOIN sys.partitions p ON p.[object_id] = i.[object_id] AND p.index_id = i.index_id +``` + +Just scrolling through all those columns, how do you know which columns are in which table? You could probably figure it out pretty quick if you know the data and have a good idea what the first column in each table is, but I've found that to be annoying. If you were working in Excel, would you add any special border formatting to make it a little easier to read? Because I would. + +In the past, I would do something like this... + +```tsql +SELECT 'sys.indexes ->' , i.* + , 'sys.objects ->' , o.* + , 'sys.stats ->' , s.* + , 'sys.partitions ->', p.* +FROM ... +``` + +![alt text](/img/unicodequeries/20240708_155925.png) + +Don't try to convince me that after staring at result grid's all day that you're going to easily and quickly spot that out of 100 columns. + +Now, my typical pattern is to do something like this: + +```tsql +SELECT N'β–ˆ sys.indexes -> β–ˆ' , i.* + , N'β–ˆ sys.objects -> β–ˆ' , o.* + , N'β–ˆ sys.stats -> β–ˆ' , s.* + , N'β–ˆ sys.partitions -> β–ˆ', p.* +FROM ... +``` + +![alt text](/img/unicodequeries/20240708_160956.png) + +I find that to be _significantly_ easier to spot...Though, most times I really only do this... + +```tsql +SELECT N'β–ˆ' [β–ˆ], i.* + , N'β–ˆ' [β–ˆ], o.* + , N'β–ˆ' [β–ˆ], s.* + , N'β–ˆ' [β–ˆ], p.* +FROM ... +``` + +![alt text](/img/unicodequeries/20240708_161344.png) + +Does it make the SELECT portion of the queries just a little bit ugly? Sure, but I've gotten used to it. And I feel the pros outweigh the cons. + +---- + +## Adding a visual row identifier + +My second most common usage for `β–ˆ` is to easily spot specific rows I'm targeting while looking at a larger dataset. For example, I have a table of records with expiration dates, but I'm doing some data analysis, looking for patterns and I want to see the whole dataset, and not _just_ those that are expiered or vice versa. + +Here's a sample query/data generator: + +```tsql +SELECT TOP(100) x.ItemID, y.StartDate, z.ExpirationDate + , Expired = IIF(z.ExpirationDate <= GETDATE(), N'β–ˆβ–ˆ', '') +FROM (VALUES(1),(2),(3),(4),(5),(6),(7),(8),(9),(10)) x(ItemID) -- If you're on SQL2022 try using GENERATE_SERIES(1,10) 😁 + CROSS APPLY (SELECT StartDate = DATEADD(MILLISECOND,-FLOOR(RAND(CHECKSUM(NEWID()))*864000000), GETDATE())) y + CROSS APPLY (SELECT ExpirationDate = DATEADD(MILLISECOND, FLOOR(RAND(CHECKSUM(NEWID()))*864000000), y.StartDate)) z +``` + +And here's what that output might look like... + +![alt text](/img/unicodequeries/20240708_164754.png) + +Obviously, you don't HAVE to use Unicode here, you'd probably be just as well off using `1` or `##` or whatever you want. I personally find that this makes it incredibly obvious and easy to spot. + +---- + +## Creating a bar chart + +Now...this is more of a hack. By this point, if you're creating bar charts with Unicode in SQL queries, you should probably be using some sort of reporting/GUI tool anyway. But it's still fun. + +I often find use in this because I can throw it into a simple utility script and then share that SQL script with others. It has the little bar graph graph in without them having to do anything special other than run it. + +I won't paste the whole script, but you can see where I've done this in a [simple Drive Usage script here](https://github.com/chadbaldwin/SQL/blob/main/Scripts/Drive%20Usage.sql){:target="_blank"}. + +The result of which looks like this: + +![alt text](/img/unicodequeries/20240708_171010.png) + +Except here you'll notice I'm actually using two different characters. `β–ˆ` to represent used space, and `β–’` (`alt+177`) to represent unused space. + +Which boils down to these expressions: + +```tsql +DECLARE @barwidth int = 50, -- Controls the overall width of the bar + @pct decimal(3,2) = 0.40; -- The percentage to render as a bar chart + +-- Dark portion of the bar represents the percentage (ex. Percent used space) +SELECT REPLICATE(N'β–ˆ', CONVERT(int, FLOOR(( @pct) * @barwidth))) + + REPLICATE(N'β–’', CONVERT(int, CEILING((1 - @pct) * @barwidth))); + +-- Light portion of the bar represents the percentage (ex. Percent free space) +SELECT REPLICATE(N'β–ˆ', CONVERT(int, FLOOR((1 - @pct) * @barwidth))) + + REPLICATE(N'β–’', CONVERT(int, CEILING(( @pct) * @barwidth))); +``` + +---- + +## Use as a delimeter + +I'm pretty sure I stole this idea from Adam Bertrand, but I can't seem to find the post. The idea is to use a Unicode character that has a very unlikely chance of occurring in your data to use as a split point / delimiter. + +The article I stole it from uses `nchar(9999)`, which is just this `✏`, a pencil, so that's also what I happen to use now. You could pick from thousands of other characters as long as it's not going to show up in your (hopefully clean) data. + +For example, I'll occasionally write something like this... + +```tsql +DECLARE @d nchar(1) = NCHAR(9999); + +SELECT STRING_AGG(s.servicename, @d) WITHIN GROUP (ORDER BY s.servicename) +FROM sys.dm_server_services s +``` + +Which results in... + +```plaintext +SQL Full-text Filter Daemon Launcher (MSSQLSERVER)✏SQL Server (MSSQLSERVER)✏SQL Server Agent (MSSQLSERVER) +``` + +This isn't necessarily a great option in all cases, you could also use something more appropriate like JSON or XML. But depending on what I'm working on, sometimes it's nice to have something a bit lighter weight. + +---- + +## Wrap it up... + +This is really only scratching the surface of what Unicode has to offer and how you can use it in SQL. I recommend checking out various Unicode blocks (related sections of characters). Some good ones to check out would be [block elements](https://unicode-explorer.com/b/2580){:target="_blank"} (what we've been using in this post), [box drawing](https://unicode-explorer.com/b/2500){:target="_blank"}, [arrows](https://unicode-explorer.com/b/2190){:target="_blank"} (there's actually like 4 blocks just for arrows), [playing cards](https://unicode-explorer.com/b/1F0A0){:target="_blank"}...just to name a few. You can view [the full list here](https://unicode-explorer.com/blocks){:target="_blank"}. + +I've also seen some pretty cool stuff for writing 3D text in SQL comments, using box drawing characters to visualize a parent-child heirarchy (kinda like when you run the windows `tree` command), etc. + +Let me know what some of your favorite tricks are using Unicode characters. diff --git a/img/unicodequeries/20240708_155925.png b/img/unicodequeries/20240708_155925.png new file mode 100644 index 0000000000000000000000000000000000000000..041616dd38d9b739d558f92bed76499c286bbcdc GIT binary patch literal 7028 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 literal 0 HcmV?d00001 diff --git a/img/unicodequeries/20240708_160956.png b/img/unicodequeries/20240708_160956.png new file mode 100644 index 0000000000000000000000000000000000000000..31c77244e3b458d15a8f5d2a9b9a482603418a47 GIT binary patch literal 7248 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 UQ79$AEC>WvP?Il|efs*p0D5vZPyhe` literal 0 HcmV?d00001 diff --git a/img/unicodequeries/20240708_161344.png b/img/unicodequeries/20240708_161344.png new file mode 100644 index 0000000000000000000000000000000000000000..0b567a599868cee1c029b5a5c98926d31a4bac99 GIT binary patch literal 6243 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 literal 0 HcmV?d00001 diff --git a/img/unicodequeries/20240708_164754.png b/img/unicodequeries/20240708_164754.png new file mode 100644 index 0000000000000000000000000000000000000000..684d58769d6b8c3cef3b0e92a28034a79d0fb225 GIT binary patch literal 11213 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 Ohk@>`>m}E0BmM__=9N(Z literal 0 HcmV?d00001 diff --git a/img/unicodequeries/20240708_171010.png b/img/unicodequeries/20240708_171010.png new file mode 100644 index 0000000000000000000000000000000000000000..7f84f9893672490df1b9939e1772591c260e8b3a GIT binary patch literal 7382 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 literal 0 HcmV?d00001