是否有任何RDBMS实现类似的东西SELECT * EXCEPT
?我所追求的是获取除特定TEXT/BLOB字段之外的所有字段,我只想选择其他所有字段.
几乎每天我都会向我的同事抱怨有人应该实现这个......它非常烦人,它不存在.
编辑:我理解大家的关注SELECT *
.我知道与之相关的风险SELECT *
.但是,至少在我的情况下,这不会用于任何生产级代码,甚至是开发级代码; 严格用于调试,当我需要轻松查看所有值时.
正如我在一些评论中所说,我工作的地方严格来说是一个命令行商店,在ssh上做一切.这使得很难使用任何gui工具(不允许与数据库的外部连接)等.
谢谢你的建议.
如何重写包含SQL实现中的标准IS DISTINCT FROM
和IS NOT DISTINCT FROM
运算符的表达式,例如不支持它们的Microsoft SQL Server 2008R2?
我在postgres中使用计算列时遇到问题.下面给出了一个在SQL中工作的类似代码,是否可以重新创建它PostgreSQL
?
select cost_1, quantity_1, cost_2, quantity_2,
(cost_1 * quantity_1) as total_1,
(cost_2 * quantity_2) as total_2,
(calculated total_1 + calculated total_2) as total_3
from data;
Run Code Online (Sandbox Code Playgroud)
在PostgreSQL
类似的代码中返回错误:
列total_1和total_2不存在.
有没有办法轻松获取查询结果的列类型?我阅读了psql文档,但我认为它不支持.理想情况下,我可以得到类似的东西:
columna : text | columnb : integer
----------------+-------------------
oh hai | 42
Run Code Online (Sandbox Code Playgroud)
有没有办法在不编码的情况下获取这些信息?
我需要在ORACLE中执行SQL查询需要一定的时间.所以我写了这个函数:
CREATE OR REPLACE FUNCTION MYSCHEMA.TEST_SLEEP
(
TIME_ IN NUMBER
)
RETURN INTEGER IS
BEGIN
DBMS_LOCK.sleep(seconds => TIME_);
RETURN 1;
EXCEPTION
WHEN OTHERS THEN
RAISE;
RETURN 1;
END TEST_SLEEP;
Run Code Online (Sandbox Code Playgroud)
我以这种方式打电话
SELECT TEST_SLEEP(10.5) FROM DUAL
Run Code Online (Sandbox Code Playgroud)
但要工作,我需要设置授予DBMS_LOCK
程序的所有者.
如何在不使用该功能的情况下重写此DBMS_LOCK.sleep
功能?
在SQL Server Management Studio中,当我为SQL作业"查看历史记录"时,我只显示了作业的最后50次执行.
如何在服务器上创建SQL作业的每次执行时查看完整日志?
如何在T-SQL中对位列使用函数SUM()?
当我尝试这样做时,如下所示:
SELECT SUM(bitColumn) FROM MyTable;
Run Code Online (Sandbox Code Playgroud)
我收到错误:
操作数数据类型位对于sum运算符无效.
我已经就此事做了一些研究,但还没有解决方案.我想得到的是视图中的列级依赖项.所以,假设我们有一个这样的表
create table TEST(
first_name varchar(10),
last_name varchar(10),
street varchar(10),
number int
)
Run Code Online (Sandbox Code Playgroud)
和这样的观点:
create view vTEST
as
select
first_name + ' ' + last_name as [name],
street + ' ' + cast(number as varchar(max)) as [address]
from dbo.TEST
Run Code Online (Sandbox Code Playgroud)
我想要的是得到这样的结果:
column_name depends_on_column_name depends_on_table_name
----------- --------------------- --------------------
name first_name dbo.TEST
name last_name dbo.TEST
address street dbo.TEST
address number dbo.TEST
Run Code Online (Sandbox Code Playgroud)
我已尝试过sys.dm_sql_referenced_entities
功能,但referencing_minor_id
视图总是为0.
select
referencing_minor_id,
referenced_schema_name + '.' + referenced_entity_name as depends_on_table_name,
referenced_minor_name as depends_on_column_name
from sys.dm_sql_referenced_entities('dbo.vTEST', 'OBJECT')
referencing_minor_id depends_on_table_name …
Run Code Online (Sandbox Code Playgroud) 只是关于交易的问题将在查询中使用空值.
例如,我有下表,其中包含以下字段和值
TABLEX
Column1
1
2
3
4
5
---------
Column2
null
A
B
C
null
Run Code Online (Sandbox Code Playgroud)
我在特定程序上传递变量Y. 程序里面是这样的游标
CURSOR c_results IS
SELECT * FROM TABLEX where column2 = variableY
Run Code Online (Sandbox Code Playgroud)
现在问题是变量Y可以是null,A,B或C如果变量Y是null我想选择column2为null的所有记录,否则其中column2是A,B或C.
我不能做上面的游标/查询,因为如果variableY为null,它将无法工作,因为比较应该是
CURSOR c_results IS
SELECT * FROM TABLEX where column2 IS NULL
Run Code Online (Sandbox Code Playgroud)
我应该使用哪种光标/查询来容纳null或string变量.
对不起,如果我的问题有点令人困惑.我解释事情并不是那么好.提前致谢.
我在尝试理解半连接的概念以及它与传统连接的不同之处时遇到了麻烦.我已经尝试了一些文章,但对解释不满意,请有人帮我理解一下吗?