SQL计算列

时间:2013-03-24 20:29:39

标签: sql sql-server

我正在编写一个网站,客户现在需要不同的角色(比规范中指定的角色多)。所以现在我必须向每个用户显示更少。

例如,如果有人数据输入用户,他也可以看到私人项目。

因此,对于我的表PROJECTS,我有一个名为STATE的属性,用于显示项目的状态。

如果是:

  1. 等待批准,
  2. 存档,
  3. 删除,
  4. 公共,
  5. 私人
  6. 在我的代码中,我有很多SQL查询SELECT * FROM PROJECT LIKE 'smth'SELECT * FROM PROJECT WHERE COUNTRY=smth以及许多需要返回项目的其他查询。

    所以我想要的是表PROJECT上的计算值,它会根据当前登录的用户向表的每一行返回true或false。

    所以我可以为每个查询调用SELECT * FROM PROJECT LIKE 'smth' AND computed_attr = TRUE

    问题是我只知道sql上的SCALAR_FUNCTIONS,你只能在当前表上使用参数。

    当用户登录并且必须运行查询时,我希望将作为参数此USER_ROLE_ID ,以便该函数可以选择是否显示表的当前行。

    SELECT * 
    FROM PROJECT 
    LIKE 'smth' AND scalarFunction(USER_ROLE_ID) = TRUE
    

0 个答案:

没有答案