gpt4 book ai didi

sql - 是否可以有一个由子选择定义的动态选择子句列?

转载 作者:行者123 更新时间:2023-11-30 23:49:20 25 4
gpt4 key购买 nike

例如

SELECT (SELECT col_name FROM column_names WHERE col_id = 1) FROM my_table

它返回 col_name 的值而不是 table.col_name 的值
例如如果 col_name 是 x1 那么上面的选择将返回“x1”而不是 SELECT x1 FROM my_table 的值

有没有办法做到这一点
  • 微软 SQL Server 2008? (根据答案,似乎是)
  • 甲骨文11g?

  • 如果是,如何在不重复子选择的情况下在 where 子句中使用 select 子句列?

    最佳答案

    在 SQL Server 中,您可以使用动态 SQL,如下所示:

    declare @TableName sysname = quotename('Test')

    declare @ColumnList varchar(max)

    select @ColumnList = isnull(@ColumnList + ', ', '') + quotename(name)
    from sys.columns
    where object_name(object_id) = @TableName

    declare @SqlCommand varchar(max) = 'select ' + @ColumnList + ' from ' + @TableName
    execute(@SqlCommand)

    关于sql - 是否可以有一个由子选择定义的动态选择子句列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6223217/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com