T-SQL查询协助where子句中的两个单引号

时间:2018-06-22 16:41:58

标签: sql-server tsql

我一直在试图理解这个t-sql查询,但是我不确定'where'子句的含义。这是查询:

UPDATE s
SET s.ID1 = p.ID1,
    s.FIRST_NAME = p.FIRST_NAME,
    s.LAST_NAME  = p.LAST_NAME,
    s.DEPT_DESCR = p.DEPT_DESCR
FROM dbo.DIRECTORY_VW S
JOIN ps.STAGING_DIRECTORY_VW P ON s.ID = p.ID
WHERE p.ID <> ''

我了解查询会使用STAGING_DIRECTORY_VW中的值更新DIRECTORY_VW视图上的ID1,FIRST_NAME,LAST_NAME和DEPT_DESCR值,其中ID相同,但是<> ''是什么意思? <>在T-SQL中不相等,但是我很难找到两个单引号是做什么的。

谢谢!

2 个答案:

答案 0 :(得分:2)

tsql中的

''是一个空字符串。这是一个非NULL的字符串,但其中也没有任何内容。

所以

someVal <> ''someVal IS NOT NULL

不同

答案 1 :(得分:0)

两个背对背的撇号('')是表示空字符串的常用方式,因此WHERE子句只是p.ID不等于空字符串的地方