需要为返回的SQL SELECT查询列表添加默认值

问题描述 投票:0回答:1

我们有一个 Kentico 13 页面类型字段,带有一个下拉列表表单控件,可查询数据库表以填充列表。

目前,列表预选顶部值,但这不起作用,因为它不是必填字段,所以我想知道是否有办法向下拉列表添加默认的“选择一个”值。

注意事项:

  • 需要明确的是,我不需要向表中添加默认值。
  • 我也无法进一步控制此下拉列表,因此必须在 SQL 查询本身中添加默认值。

下面是返回适当列表的原始查询。唯一缺少的是默认值。

SELECT t.NodeGUID, t.DocumentName FROM VIEW_CMS_TREE_JOINED t WHERE t.ClassName = 'AscediaRedesign.Industry' ORDER BY t.DocumentName

下面是我们如何设置页面类型字段的屏幕截图(使用上面的 SQL 查询),后面是成功填充下拉列表的另一个屏幕截图:

Kentico 社区的一位成员建议尝试使用 UNION,但我无法让它发挥作用:

SELECT '' as NodeGUID, 'Please Select' as DocumentName UNION SELECT t.NodeGuid, t.DocumentName FROM VIEW_CMS_TREE_JOINED t WHERE t.ClassName = 'AscediaRedesign.Industry'

上述查询会导致以下错误:“引起异常:从字符串转换为 uniqueidentifier 时转换失败。”

sql select kentico-13
1个回答
0
投票

尝试以下查询。空白不是有效的 GUID。这就是错误的原因。

SELECT NEWID() as NodeGUID, 'Please Select' as DocumentName UNION ALL SELECT t.NodeGuid, t.DocumentName FROM VIEW_CMS_TREE_JOINED t WHERE t.ClassName = 'AscediaRedesign.Industry' 

SELECT NULL as NodeGUID, 'Please Select' as DocumentName UNION ALL SELECT t.NodeGuid, t.DocumentName FROM VIEW_CMS_TREE_JOINED t WHERE t.ClassName = 'AscediaRedesign.Industry'
© www.soinside.com 2019 - 2024. All rights reserved.