The closest application I have used in functionality to CsvSQL is a program by Microsoft which runs in their new PowerShell. The program (Import-Csv)[4] can be used to read data from a CSV and then display it in tabular format within the PowerShell console. If we were to take the CSV file we have been using so far and display it in PowerShell using Import-Csv it would look like the example below (assuming the csv file is in c:\data.csv).
Example 2-2. Sample MS Import-Csv
C:\> Import-Csv c:\data.csv
id firstname lastname email
-- --------- -------- -----
12345 John Smith john.smith@example.com
23456 Patrick Murphy patrick.murphy@example.com
34567 Sarah Jones sarah.jones@example.com
Import-Csv can however only be used for fully displaying a file and cannot perform any searches itself. To do so it is required to pipe the output of the command to a different program ( also known as a cmdlet in MS Powershell) and even then cannot modify CSV data. It can also only run on Windows Machines which run PowerShell which is a serious limitation as it excludes the Unix world. And although you can select on specified conditions, as is shown below, it is in fact the opposite end of the scale from awk in that it is too simplistic for a variety of tasks.
The folowing example pipes the output of Import-Csv to the Where-Object command, which will then filter on designated columns. This will require the entire file to be processed each time a new request is made. Please note in the command below the $_ refers to the current object, in the same way as it does in Perl.