小编nac*_*all的帖子

如何将SQL短路的短路

我试图在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 t-sql sql-server

8
推荐指数
1
解决办法
3802
查看次数

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.

sql t-sql sql-server

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

sql ×2

sql-server ×2

t-sql ×2