djo*_*ert 0 sql default view isnull
我有一个包含许多列的 SQL 视图。ID(地块 ID)例如:7465-85-7468 建筑物(如果需要特定建筑物的 ID)例如:102 房间(如果需要特定房间的 ID)例如:0023
我每行都有一个 ID,但对于大多数行,没有建筑物 ID 或房间 ID
我想用 '000' 来填充空白行以表示建筑,用 '0000' 来表示房间。
我可以将这些字段合并到第四个字段中(完整 ID)
它尝试使用“ISNULL”获取默认值,但没有成功。
现在,我有这样的东西
ID / 建筑物 / 房间 / 完整 ID
7848-05-6956 / / / 7848-05-6956--
6985-26-7485 / 102 / 0000 / 6985-26-7485-102-0000
7236-12-0145 / / 0223 / 7236-12-0145--0223
我需要这个
ID / 建筑物 / 房间 / 完整 ID
7848-05-6956 / 000 / 0000 / 7848-05-6956-000-0000
6985-26-7485 / 102 / 0000 / 6985-26-7485-102-0000
7236-12-0145 / 000 / 0223 / 7236-12-0145-000-0223
如果该字段不可为空,则数据可能会存储为空字符串而不是 NULL。
尝试执行以下操作:
SELECT x.ID, x.Building, x.Room, ID + '-' + Building + '-' + Room AS [Full ID]
FROM (
SELECT
ID
, CASE WHEN ISNULL(Building, '') = '' THEN '000' ELSE Building END AS Building
, CASE WHEN ISNULL(Room, '') = '' THEN '0000' ELSE Room END AS Room
FROM MyTable ) x
Run Code Online (Sandbox Code Playgroud)
这将处理 NULL 和空字符串,并允许您构建完整 ID,而无需执行两次 CASE 语句。