我试图在SQL服务器中执行以下查询:
declare @queryWord as nvarchar(20) = 'asdas'
SELECT * FROM TABLE_1
WHERE (ISDATE(@queryWord) = 1)
AND TABLE_1.INIT_DATE = CONVERT(Date, @queryWord)
Run Code Online (Sandbox Code Playgroud)
这显然会导致错误,因为'asdas'无法转换为Date.虽然,我期待一种不同的行为.也就是说,因为它ISDATE(@queryWord) = 1是假的,我期待SQL不检查第二个条件,但显然,它确实如此.
我知道还有其他一些方法可以执行此查询,但这不是我的问题.我想知道是否有一些方法不检查第二个条件是第一个不满足.我很好奇,因为我认为SQL已经做到了这一点.
我想知道以下是否可行.
我有一个SQL函数,它分割一个逗号分隔的字符串,返回一个带有分割值的表.
你好,我的名字是约翰
返回一个表:
ITEM
-----
hello
my name
is
John
Run Code Online (Sandbox Code Playgroud)
A有一个表,为每行存储一个ID和一个逗号分隔的字符串:
VALUE_TO_SPLIT
--------------
1 | a,b,c
1 | d,e,f,g
2 | a,b
3 | a
3 | b,c,f
Run Code Online (Sandbox Code Playgroud)
不使用游标,是否可以获得结果表?
RESULTING_TABLE
1 | a
1 | b
1 | c
1 | d
1 | e
1 | f
1 | g
2 | a
2 | b
3 | a
3 | b
3 | c
3 | f
Run Code Online (Sandbox Code Playgroud)
也就是说,每个分裂值的行及其id.