我正在编写Node js应用程序作为练习,并且正在使用现有的SQL Server数据库(试图重写使用相同数据库但缺乏报告灵活性的现有.NET前端)。
我需要查询由(guid,questionTag和value)组成的“调查”表。我不知道为什么这张桌子是这样设计的,但是我不能更改它。
guid question value
----------------------------
1 q1_1 false
1 q1_2 true
1 q1_3 false
1 q2_1 false
1 q2_2 false
1 q2_3 true
...
guid
列是对另一个表格的引用,该表格保存有关填写调查表的用户的信息。
value
来自HTML表单,代表用户选择的单选按钮。向用户询问两个问题,每个问题有3种可能性。
我希望查询的最终结果将具有相同GUID的“ q1_X”行分组,并将其布尔值“转换”为一个数字-1,2或3,具体取决于“ true”值在哪里:
guid question value
---------------------------
1 q1 2
1 q2 3
答案 0 :(得分:0)
您需要字符串函数,例如left()
,right()
和charindex()
:
select
guid,
left(question, charindex('_', question) - 1) question,
right(question, len(question) - charindex('_', question)) value
from tablename
where value = 'true'
请参见demo。
结果:
> guid | question | value
> ---: | :------- | :----
> 1 | q1 | 2
> 1 | q2 | 3