Your query is standard SQL. Unfortunately it hasn't been implemented yet in SQL Server. You can express your support for this feature to be implemented: Microsoft Azure Feedback: Add support for ANSI standard row value constructors.
You can use the common method of transforming IN to an EXISTS subquery. Works with just one or more columns:
You can use SQL Mail with SQL Server Express edition.
Borrowing liberally from Sending Mail using SQL Server Express Edition
To configure SQL mail we need to follow below steps.
--Create Sysmail Account
--Use sysmail_add_account_sp stored procedure of MSDB database to configure sysmail account.
@account_name = '...
Is Database Mail not supported in this SQL Server version? Which SQL
Server version (or edition) required to use Database Mail?
Database mail is not included when using SQL Server Express edition:
To be able to use database mail, you could opt for Web, Standard or Enterprise edition. In non production environments you could also go for developer ...
With Hyperthreading enabled, you currently have 4 hard NUMA nodes with 10 physical cores and 20 logical cores each. On SQL Server 2012 and 2014 you will have 4 matching soft NUMA nodes with 20 logical cores each.
Upon upgrading to SQL Server 2016 or higher, auto soft NUMA will automatically kick in. You'll now have 2 soft NUMA nodes per hard NUMA node for a ...
Should I run truncate command or delete command? I try to use
truncate but I was having issues with getting a lock on the tables so
I switched to a delete • Is it better if I completely delete the table
and recreate the object each time instead? Would this help with the
database growth? • I have read where "shrinking" is not a good thing,
Normalising StudentMaster.Course will help preserve duplicates. Since you've tagged sql-server-2012 sadly string_split() is unavailable. Happily, the internet is rife with pre-2016 workarounds. I'll choose this one arbitrarily since it was the top google hit for me.
Given creation of dbo.fn_split_string_to_column() from the linked SO post, the following ...
WHERE Start_Date >= '2019-09-11 12:00.000'
AND End_Date <= '2019-09-11 13:15.000'
Partial overlap (not adjacent only, for adjacents replace strong unequiations > and > with safe ones >= and <=):
WHERE End_Date > '2019-09-11 12:00.000'
AND Start_Date < '2019-09-11 13:15....
With SQL 2016 or later this would be much easier as you could:
Use the STRING_SPLIT() table valued function to pull apart the string
Call that via CROSS APPLY as illustrated in the examples in the documentation linked in "1"
Join to your lookup table
Use STRING_AGG() (or the FOR XML PATH hack you are already using, of course) to put it back together