问题描述
我有下表import React,{useState,useEffect} from 'react';
import { Text,View,StyleSheet,Button } from 'react-native';
import Constants from 'expo-constants';
export default function App()
{
const [showStatusbar,setShowStatusbar] = useState(true)
useEffect(() =>
{
setTimeout(() =>
{
setShowStatusbar(false)
},3000)
},[])
return (
<View style={styles.container}>
{
showStatusbar
? <View style = {styles.statusBar}>
<Text>Status Bar</Text>
</View>
: null
}
<Button title = "Show Status bar" onPress = {() => setShowStatusbar(true)}/>
</View>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,backgroundColor: '#ecf0f1',},statusBar:
{
height: 50,backgroundColor:'lightblue',justifyContent:'center',alignItems:'center'
}
});
:
MyTable
我想查询由 id │ value_two │ value_three │ value_four
────┼───────────┼─────────────┼────────────
1 │ a │ A │ AA
2 │ a │ A2 │ AA2
3 │ b │ A3 │ AA3
4 │ a │ A4 │ AA4
5 │ b │ A5 │ AA5
分组的对象数组 { value_three,value_four }
。 value_two
应该单独出现在结果中。结果应该是这样的:
value_two
在 postgress 我可以这样做:
value_two │ value_four
───────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
a │ [{"value_three":"A","value_four":"AA"},{"value_three":"A2","value_four":"AA2"},{"value_three":"A4","value_four":"AA4"}]
b │ [{"value_three":"A3","value_four":"AA3"},{"value_three":"A5","value_four":"AA5"}]
但在 sql SERVER 中我得到 SELECT value_two,json_agg(row_to_json((value_three,value_four)::foo)) AS value_four
FROM mytable
GROUP BY value_two
在 sql SERVER 上与此等效的是什么。有人可以帮我吗?
解决方法
如果您使用的是 SQL Server 2016+,您可以尝试使用 FOR JSON
:
表格:
SELECT *
INTO Data
FROM (VALUES
(1,'a','A','AA'),(2,'A2','AA2'),(3,'b','A3','AA3'),(4,'A4','AA4'),(5,'A5','AA5')
) v (id,value_two,value_three,value_four)
声明:
SELECT DISTINCT d.value_two,j.value_four
FROM Data d
OUTER APPLY (
SELECT value_three,value_four
FROM Data
WHERE value_two = d.value_two
FOR JSON AUTO
) j (value_four)
结果:
value_two value_four
a [{"value_three":"A","value_four":"AA"},{"value_three":"A2","value_four":"AA2"},{"value_three":"A4","value_four":"AA4"}]
b [{"value_three":"A3","value_four":"AA3"},{"value_three":"A5","value_four":"AA5"}]