这个查询都一样吗?我看不出结果有什么不同,只是根据我们的选择更改表格行中的数字。但是,为什么我们总是使用1.它是否具有一些技术含义和优势?
答案 0 :(得分:2)
SELECT <Something> FROM Tablename
之类的查询会在每行something
中选择tablename
。
现在,如果此something
不是表的列,并且我们只是想避免在表上进行计算,我们使用类似1
或2
的数字或者每行可以返回的任何数字计算。他们都是一样的。
甚至像
SELECT 'I am doing good' FROM tablename
一些聪明的开发人员选择返回一个标量值,这对于查询的其他部分很有用,比如说
IF EXISTS( SELECT 1 FROM Issue_Log)
BEGIN
PRINT 'HAVE MORE WORK'
END
在上面的例子中,我们只是检查Issue_Log
表中是否有任何行。我们只是从select查询中返回1。如果没有行,我们就不会得到任意数量的1作为结果,并且IF EXISTS(NULL)
被评估为false。
欢迎来到SQL世界。
答案 1 :(得分:0)
您需要了解指定的数字将返回的次数与表格中的行数一样多。行数相同,但返回的值是您在SELECT语句中指定的值
答案 2 :(得分:0)
如果你的意思是
,那么一切都是一样的 SELECT * FROM MY_TABLE
WHERE EXISTS (SELECT 1 FROM table WHERE conditions...)
它只是一个随机值。即使您可以使用*,NULL
等等
SELECT * FROM MY_TABLE
WHERE EXISTS (SELECT * FROM table WHERE conditions...)